2016-10-10 3 views
0

Meine Seite wird auf Heroku bereitgestellt. Alles läuft gut, außer statischen Dateien. Statische Dateien sind auf diesem Pfad doctor_app/doctor_app/static/.Heroku Statische Dateien funktionieren nicht für django admin + Datei nicht gefunden + 404

Lokal funktioniert Admin-Panel für Django perfekt. Aber auf Heroku, findet es keine statischen Dateien.

Überraschenderweise, wenn ich diesen Befehl mit Terminal ausführen.

heroku run cat doctor_app/static/admin/css/base.css 

Es gibt den Inhalt von base.css aus. was bedeutet, statische Dateien sind dort

Ich frage mich, warum Django findet keine Dateien?

Für mehr Informationen, hier mein settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') 
#STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'staticfiles'), 
) 

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

STATIC_URL = '/static/' 
+0

Haben Sie "python manage.py collectstatic" ausgeführt? –

+0

Ja, tat ich. @VijeshVenugopal –

+0

@AdilMalik von "es findet keine statischen Dateien" meinst du, dass sie einen 404 Fehler zurückgeben? Wenn ja, wie verknüpfen Sie diese statischen Dateien in Ihrer Vorlage? Stellen Sie auch Ihre 'settings.py'-Variablen für statische Dateien, z. B.' STATICFILES_DIRS' usw., bereit. – YPCrumble

Antwort

3

Es ist kein django Fehler. Was Django macht ist statische Dateien bereit und sammeln sie in STATIC_ROOT, die alle in Ihrem Fall festgelegt ist.

Beachten Sie, dass die Bereitstellung statischer Dateien für ein Django-Projekt normalerweise nicht in der Verantwortung von Django liegt. Sie können sich auf django's doc on deploying static files beziehen und versuchen, sie mithilfe von Apps wie uwsgi oder nginx bereitzustellen.

Für einen schnellen Versuch, können Sie statische Dateien in djanog die Routing anhängen, wie here beschrieben:

von django.conf Importeinstellungen von django.conf.urls.static import static

urlpatterns = [ 
    # ... the rest of your URLconf goes here ... 
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

Soweit Ihre Frage zur Verfügung gestellt wurde, könnte dies für Sie arbeiten.

+0

Das hat mir sehr geholfen! Vielen Dank –

Verwandte Themen