這個問題似乎被問了幾次,但我無法修復它。在Heroku上沒有找到Django靜態文件(帶有whitenoise)
我在DEBUG = False
的生產環境中部署了一個django應用程序。我設置了我的allowed_host
。 我用{% load static from staticfiles %}
加載靜態文件。我究竟寫的Heroku的文檔sugested設置:
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
但我得到了一個500錯誤,當我運行heroku run python manage.py collectstatic --noinput
所有似乎確定了這個回溯(郵寄)
...
`cache_name = self.clean_name(self.hashed_name(name))
File "/app/.heroku/python/lib/python3.5/site- packages/django/contrib/staticfiles/storage.py", line 94, in hashed_name (clean_name, self))
...
ValueError: The file ‘app/css/font.css’ could not be found with <whitenoise.django.GzipManifestStaticFilesStorage object at 0x7febf600a7f0>.`
:
276 static files copied to '/app/annuaire/staticfiles', 276 post-processed.
有沒有人有想法來幫助我?
感謝
編輯:
annuaire
|-- /annuaire
|-- -- /settings.py
|-- /app
|-- -- /static/...`
wsgi.py
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
的Django通常只要求當DEBUG =假,所以我困惑的是,你可以得到與調試錯誤特定功能=真。我建議用DEBUG = False在本地測試你的應用程序,運行'collectstatic'然後運行'runserver',看看你是否得到這個錯誤。難道你只是沒有犯這個特定的文件? –
對不起!當調試是錯誤的,你是對的! – vpoulain
您是否打印過'STATIC_ROOT'以確保它與'/ app/annuaire/staticfiles''相同? – agconti