django - 需要提供STATIC_ROOT吗?

标签 django

谁能向我解释一下在 django 项目中提供 STATIC_ROOT 的必要性吗?看起来, 如果我只声明 STATICFILES_DIRS 而不是 STATIC_ROOT,则一切正常。

最佳答案

STATIC_ROOT 仅在生产中需要,因为 Django 开发服务器 runserver 负责直接从静态目录提供静态文件。

STATIC_ROOTpython 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/

相关文章:

python - 在 django slug 字段中使用外语不起作用

python - 如何直接查询Django为ManyToMany关系创建的表?

python - uWSGI + Django + Python : no module named uwsgi

python - 无法在 django session 中保存对象列表

python - 在 Django 中覆盖动态 CSS

python - Neo4Django - SyncDB 不创建表和图

python - Django 模型 : Defining a method on a list of instances of a model

django - 在 VueJS 中存储身份验证 token 的最佳实践?

python - 如何在Django中实现交易和账户系统?

IIS 上的 django-wkhtmltopdf : [WinError 6] The handle is invalid