我可以在 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 相同吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中使迁移有条件

如何在 Django Administration 中使文本加粗

我应该如何自动填充一个字段并在 django 中使其只读?

60Django 第二天功能

60Django 第二天功能

如何在 django 中使 @cached_property 无效