我可以在 Django 1.3 中使 STATICFILES_DIR 与 STATIC_ROOT 相同吗?
Posted
技术标签:
【中文标题】我可以在 Django 1.3 中使 STATICFILES_DIR 与 STATIC_ROOT 相同吗?【英文标题】:Can I make STATICFILES_DIR same as STATIC_ROOT in Django 1.3? 【发布时间】:2012-08-23 01:54:50 【问题描述】:我正在使用 Django 1.3,我意识到它有一个 collectstatic 命令来将静态文件收集到 STATIC_ROOT 中。这里我还有一些其他全局文件需要使用 STATICFILES_DIR 提供服务。
我可以让他们使用相同的目录吗?
谢谢。
【问题讨论】:
Please folllow this link - 我从 *** 中找到了答案 【参考方案1】:没有。事实上,文件django/contrib/staticfiles/finders.py
甚至会检查这一点并在您这样做时引发ImproperlyConfigured
异常:
“STATICFILES_DIRS 设置不应包含 STATIC_ROOT 设置”
STATICFILES_DIRS
可以包含带有静态文件的其他目录(不一定是应用程序目录),当您运行 collectstatic 时,这些静态文件将被收集到您的 STATIC_ROOT
中。然后,这些静态文件将由您的 Web 服务器提供,它们将从您的 STATIC_ROOT
提供。
如果您的STATIC_ROOT
中当前有您希望提供的文件,那么您需要将这些文件移动到不同的目录并将该其他目录放在STATICFILES_DIRS
中。您的STATIC_ROOT
目录应该是空的,并且所有静态文件都应该收集到该目录中(即,它不应该已经包含静态文件)。
【讨论】:
那么我可以将属于网站但不属于特定应用的静态文件放在哪里? 该异常仅在手动启动 django 时发生。例如,当使用 Apache 服务器配置时,它就像一个魅力。这对我来说似乎也是正确的,因为所有管理文件都收集在static/admin/
下。这样做有什么潜在的问题吗?以上是关于我可以在 Django 1.3 中使 STATICFILES_DIR 与 STATIC_ROOT 相同吗?的主要内容,如果未能解决你的问题,请参考以下文章