我正在使用Django 1.7。将我的站点部署到生产服务器并运行collectstatic
时,出现以下错误消息:
的 django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting
我使用分割设置;我的作品local.py
包含:
STATIC_ROOT = '/home/username/projects/site/static/'
我的base.py
包含:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
答案 0 :(得分:26)
根据docs,collectstatic会将各种文件夹中的文件复制到STATIC_ROOT。
因此,您无法使用STATIC_ROOT
中的STATICFILES_DIRS
文件夹。
解决方案:将STATIC_ROOT
更改为例如STATIC_ROOT = '/home/username/projects/site/assets/'
答案 1 :(得分:7)
我知道这是一篇过时的文章,但是此解决方案对我有用,可能会对其他人有所帮助。
在settings.py中:
if DEBUG:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
答案 2 :(得分:5)
当我尝试使用压缩器
时,我遇到了与此(staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.
相同的错误
主要问题是我的settings.py文件
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
删除或评论:
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
答案 3 :(得分:0)
解决方案是,如果您正在运行Django开发服务器,则不得设置STATIC_ROOT:
import sys
if sys.argv[1] != 'runserver':
STATIC_ROOT = os.path.join(BASE_DIR, "static")
在Windows 10开发环境中以及在生产环境中AWS的Ubuntu 18.04 docker容器中使用Django 2.1进行了测试。
答案 4 :(得分:0)
在 settings.py 中将静态根设置为虚拟环境,以便将静态文件收集到文件夹 static_in_env
var six = file_content.readIntLE(0, 6);
答案 5 :(得分:-1)
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
如上所示,对urls.py进行更改后,它应该可以正常工作。