在开发中,STATIC_ROOT 实际上是无用的,因为 Django 自动从以下位置提供静态文件每个应用程序的目录。在部署过程中,STATIC_ROOT对于Nginx定位和提供静态内容至关重要。
STATIC_ROOT指定在运行manage.pycollectstatic后Django将收集和输出所有静态文件的位置。该位置应该可以由为您的网站提供服务的 Web 服务器(例如 Nginx)访问。
STATICFILES_DIRS 是一个可选设置,允许您包含附加目录以供 Collectstatic 搜索对于静态文件。如果您在默认应用程序目录之外有静态文件,这非常有用。
根据您提供的代码,您最初遇到问题是因为 JS 文件是在 STATIC_ROOT 指定的位置找不到。这是因为 admin.py 在 STATICFILES_DIRS 的 admin/ 子目录中查找文件,而不是 STATIC_ROOT。
通过更改为 STATICFILES_DIRS,您能够解决此问题,因为它包含 JS 文件所在的路径。
Setting | Purpose | Deployment |
---|---|---|
STATIC_FILES_DIR | Additional directories for static files | n/a |
STATIC_ROOT | Location where static files are collected | Required |
MEDIA_ROOT | Location for user-uploaded files | n/a |
以上是以下是一些标题选项,强调问题格式: * **STATIC_FILES_DIR、STATIC_ROOT 和 MEDIA_ROOT:有什么区别以及何时使用它们?** * **Django 部署:为什么是 STATI的详细内容。更多信息请关注PHP中文网其他相关文章!