2017-09-09 1 views
0

Ich arbeite an einem Projekt mit Cookiecutter Django Vorlage: https://github.com/pydanny/cookiecutter-django Das Projekt wird in Docker Container ausgeführt, die mit dem Cookiecutter-Django Vorlage auf Ubuntu 16.04LTS kommen.Django statische Dateien nicht gefunden Wert Fehler

Beim Versuch, die Seite zu Produktion zu bekommen, es gibt folgende Fehler auf einigen Seiten:

the file 'events\css\themes\fontawesome-stars.css' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7f830be38ac8>. 

Ordnerstruktur ist:

./project/events/static/ 
└── events 
    ├── css 
       ├── details.css 
       ├── list.css 
       └── themes 
        ├── fontawesome-stars.css 
        └── fontawesome-stars-o.css 

keine Fehler während des Docker Build-Prozesses berichtet werden und nach das laufende Collectstatic. Berechtigungen für die Dateien auf dem Server werden auf 775.

statische config in base.py config:

# STATIC FILE CONFIGURATION 
# ------------------------------------------------------------------------------ 
# See: https://docs.djangoproject.com/en/dev/ref/settings/#static-root 
STATIC_ROOT = str(ROOT_DIR('staticfiles')) 

# See: https://docs.djangoproject.com/en/dev/ref/settings/#static-url 
STATIC_URL = '/static/' 

# See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_DIRS 
STATICFILES_DIRS = [ 
    str(APPS_DIR.path('static')), 
] 

# See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-finders 
STATICFILES_FINDERS = [ 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
] 

In Vorlage ich die Datei wie folgt bin auch .:

{% load static %} 
{% load crispy_forms_tags %} 
{% block title %} 
{% endblock%} 

{% block css %} 
{{block.super}} 
<link rel="stylesheet" type="text/css" href="http://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css"> 
<link rel="stylesheet" type="text/css" href="{% static 'events\css\themes\fontawesome-stars.css' %}"> 
{% endblock %} 

Antwort

1

Wie fügen Sie die statischen Dateien in Ihre Vorlagen ein? Es sieht so aus, dass Sie den Pfad direkt angeben. Stattdessen sollten Sie verwenden:

{% load staticfiles %} 
<link rel="stylesheet" type="text/css" href="{% static 'events/css/themes/fontawesome-stars.css' %}"> 

Da in der Produktion whitenoise und collectstatic Befehl zusätzliche Inhalte auf die für Versionierung, Caching und andere Zwecke Dateinamen hinzuzufügen.

+0

Ich habe es auf die gleiche Weise enthalten, wie Sie vorschlagen, dass es getan werden sollte. Das Ändern von statischen in statische Dateien ändert nichts. – MarkerDave

+1

@Niikhawod In dem Beispiel, das Sie gerade hinzugefügt haben, verwenden Sie "\" anstelle von "/". Das könnte das Problem sein. – dethos

+0

Großartig, wenn das das Problem war. Meine Antwort sollte korrekt sein. – dethos

Verwandte Themen