Django Heroku raise ValueError(“缺少'% s'的静态文件清单条目" % clean_name)

7jmck4yq  于 2022-12-13  发布在  Go
关注(0)|答案(3)|浏览(107)

我收到500服务器错误,因为我的静态文件似乎有问题:
我项目文件夹名称已注册,且我有用于生产和开发的不同设置文件:

register
--live-static
--register
----settings
------__init__.py
-----common.py
-----production.py
-----development.py
--live-static
--static

在我的production.py文件中,我有:

from register.settings.common import *
import django_heroku

django_heroku.settings(locals())

DEBUG = False
STATIC_URL = '/static/'
STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'live-static', 'static-root')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'live-static', 'media-root'

我已经跑了:python manage.py collect staticheroku run python manage.py collectstatic
我得到了以下结果:1626 static files copied to '/app/live-static/static-root', 4464 post-processed.
然而,在我访问我的网站后,我得到一个错误:

raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)
2020-09-07T19:46:28.324481+00:00 app[web.1]: ValueError: Missing staticfiles manifest entry for 'css/main.css'

在我模板中,我有{% static 'css/main.css' %}
我不知道为什么我仍然得到一个错误,因为我的收集静态已经正常工作。我会感谢任何帮助。

vawmfj5a

vawmfj5a1#

从Whitenoise文档来看,您的main.css可能引用了其他文件:
最常见的问题是有些CSS文件引用了指定路径中不存在的其他文件(通常是图像或字体)。当Django试图重写这些引用时,它会寻找相应的文件,如果找不到,就会抛出错误。
我建议您更改STATICFILES_STORAGE的值,看看它是否有效:

+ STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'
- STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
yptwkmov

yptwkmov2#

对我来说,这些设置是有效的:

# STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' # try disabling it
WHITENOISE_USE_FINDERS = True
WHITENOISE_MANIFEST_STRICT = False
WHITENOISE_ALLOW_ALL_ORIGINS = True
6jygbczu

6jygbczu3#

它正在我的项目上工作。你可以应用这个解决方案。

- STATICFILES_STORAGE ="whitenoise.storage.CompressedManifestStaticFilesStorage"
+ STATICFILES_STORAGE = "whitenoise.storage.CompressedStaticFilesStorage"

相关问题