2017-09-09 1 views
0

Je travaille sur un projet en utilisant le modèle cookiecutter django: https://github.com/pydanny/cookiecutter-django Le projet est exécuté dans des conteneurs docker fournis avec le modèle cookiecutter-django sur Ubuntu 16.04LTS.Fichiers statiques Django non trouvés Erreur de valeur

Lorsque vous essayez d'obtenir le site à la production, elle renvoie l'erreur suivante sur certaines pages:

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

est:

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

Aucune erreur ne sont signalées au cours du processus de construction de docker et après que courir collectstatic. autorisations pour les fichiers sur le serveur sont mis à 775.

config statique dans config base.py:

# 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', 
] 

dans le modèle que je suis, y compris le fichier comme celui-ci .:

{% 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 %} 

Répondre

1

Comment incluez-vous les fichiers statiques sur vos modèles? Il semble que vous spécifiez le chemin directement. Au lieu de cela, vous devez utiliser:

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

Parce que dans la production whitenoise et collectstatic commande va ajouter du contenu supplémentaire au nom de fichier pour le versioning, la mise en cache et d'autres fins.

+0

Je l'ai inclus de la même manière que vous le suggérez. La modification de static en staticfiles ne change rien. – MarkerDave

+1

@Niikhawod Dans l'exemple que vous venez d'ajouter, vous utilisez "\" au lieu de "/". Ca peut être le problème. – dethos

+0

Super, si c'était le problème. Ma réponse devrait être correcte. – dethos