django STATICFILES_DIRS设置不应该包含STATIC_ROOT设置

wgx48brx  于 2023-05-19  发布在  Go
关注(0)|答案(2)|浏览(225)

我在Heroku上部署Django应用程序。
在我的设置模块中,我配置了托管静态文件,如

STATIC_ROOT = os.path.join(BASE_DIR, 'static_my_project')
STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_my_project')
]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static_cdn', 'media_root')

urls.py

urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

但在部署到heroku时,它给出的错误为

SystemCheckError: System check identified some issues:

ERRORS:
?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.
tpxzln5u

tpxzln5u1#

也许这会有所帮助:

STATIC_URL = '/static/'
    
if not DEBUG:
    STATIC_ROOT = ''
    
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static/'),
]
qyuhtwio

qyuhtwio2#

问题在于STATIC_ROOT和STATICFILES_DIRS中的名称不能相同。static root用于django的collectstatic命令。如果不使用它,您可以删除它。如果不将默认位置(django应用程序中)更改为base之类的其他地方,也可以删除静态文件dirs。

相关问题