我正在使用Django 1.3,并且意识到它具有collectstatic命令,可将静态文件收集到STATIC_ROOT中。在这里,我还有一些其他全局文件需要使用STATICFILES_DIR提供。
我可以让他们使用相同的目录吗?
否。实际上,该文件django/contrib/staticfiles/finders.py甚至会对此进行检查并ImproperlyConfigured在执行此操作时引发异常:
django/contrib/staticfiles/finders.py
ImproperlyConfigured
“ STATICFILES_DIRS设置不应包含STATIC_ROOT设置”
STATICFILES_DIRS
STATIC_ROOT
该STATICFILES_DIRS可以包含其他目录(不一定是应用程序的目录)与静态文件和这些静态文件将被收集到你STATIC_ROOT,当你运行collectstatic。然后,这些静态文件将由你的Web服务器提供,而它们将从你的STATIC_ROOT。
collectstatic
如果你当前要提供文件STATIC_ROOT,则需要将这些文件移到另一个目录,然后将该另一个目录放在中STATICFILES_DIRS。你的STATIC_ROOT目录应该为空,所有静态文件都应收集到该目录中(即它不应该已经包含静态文件)。