Questa domanda sembra essere richiesta più volte ma non riesco a risolverlo.Impossibile trovare file statici di Django su Heroku (con whitenoise)
Ho distribuito un'applicazione django in produzione con DEBUG = False
. Ho impostato il mio allowed_host
. Ho usato {% load static from staticfiles %}
per caricare file statici. Io scrivo esattamente le impostazioni sugested da Heroku doc:
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'
ma ho ottenuto un errore 500. E ottenuto questo traceback (per posta)
...
`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>.`
Quando eseguo heroku run python manage.py collectstatic --noinput
Tutto sembra ok:
276 static files copied to '/app/annuaire/staticfiles', 276 post-processed.
Qualcuno ha un'idea per aiutarmi, per favore?
Grazie
EDIT:
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 solo di solito chiama quella particolare funzione quando DEBUG = False quindi sono perplesso che si potrebbe ottenere quell'errore con DEBUG = true. Suggerirei di testare la tua app localmente con DEBUG = False, eseguendo 'collectstatic' e quindi' runserver' e vediamo se ottieni questo errore. Potrebbe essere che non hai commesso quel particolare file? –
Siamo spiacenti! Quando Debug è Falso, hai ragione! – vpoulain
Hai stampato 'STATIC_ROOT' per assicurarti che sia lo stesso di"/app/annuaire/staticfiles "? – agconti