谁能向我解释一下在 django 项目中提供 STATIC_ROOT 的必要性吗?看起来, 如果我只声明 STATICFILES_DIRS 而不是 STATIC_ROOT,则一切正常。
最佳答案
STATIC_ROOT
仅在生产中需要,因为 Django 开发服务器 runserver
负责直接从静态目录提供静态文件。
STATIC_ROOT
是 python manage.pycollectstatic
将收集用于部署的静态文件的目录的绝对路径。
示例:STATIC_ROOT="/var/www/example.com/static/"
现在命令python manage.pycollectstatic
会将所有静态文件(即应用程序中的静态文件夹中的静态文件,所有路径中的静态文件)复制到目录/var/www/example.com/static/
。现在您只需在 apache 或 nginx 等上提供此目录即可。
注意:您经常会看到 STATIC_ROOT
设置为 os.path.join(BASE_DIR, 'static')
的示例。这是一种不好的做法,因为它会在源代码存储库中创建静态文件夹。始终将其设置为项目文件夹外部的路径,例如/var/www/example.com/static/
当您的项目位于 /var/www/example.com/src/
时。
关于django - 需要提供STATIC_ROOT吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60987288/