Django n'est pas de servir les fichiers statiques, avoir des erreurs 404
Je n'arrive pas à obtenir mes fichiers statiques pour les charger à partir de mes modèles. J'ai suivi la documentation officielle, mais quelque chose doit m'échapper.
Mon annuaire de mise en page (généré par Django, la plupart des fichiers omis):
myproject
myproject
settings.py
urls.py
static
css
bootstrap.css
main.css
templates
base.html
myapp1
myapp2
...
manage.py
Mon settings.py
:
STATIC_URL = 'static/'
Je suis le référencement de mes feuilles de style comme (à partir de mes modèles):
{% load staticfiles %}
<link rel="stylesheet" href="{% static "css/bootstrap.css" %}" type="text/css">
<link rel="stylesheet" href="{% static "css/style.css" %}" type="text/css">
Ce qui lui donne une fois rendu (en HTML):
<link rel="stylesheet" href="static/css/bootstrap.css" type="text/css">
<link rel="stylesheet" href="static/css/style.css" type="text/css">
Pourtant, ces liens ne mènent nulle part (quand je visite, je les reçois d'erreur 404 de Django). J'ai l'impression que je pourrais corriger cela en ajoutant quelque chose dans urls.py
, mais je pensais que Django a fait cela automatiquement lorsque vous exécutez le serveur? Ce qui me manque?
python manage.py findstatic --verbosity 2 css/styles.css
pour voir où Django est à la recherche de vos fichiers statiques.OriginalL'auteur n0pe | 2012-04-15
Vous devez vous connecter pour publier un commentaire.
Avez-vous défini vos fichiers statiques répertoire dans
settings.py
?Je devine que vous avez
'django.contrib.staticfiles',
dans vos applications installées.Si vous n'avez pas défini de vos fichiers statiques dir, vous pouvez en faire quelque chose comme ceci:
django.contrib.staticfiles
chargé et j'aiSTATIC_URL = '/static/'
dans mon fichier de paramètres.Avez-vous rempli dans STATICFILES_DIRS avec le chemin absolu de votre statique dossier? Comme la réponse ci-dessus dit de le faire.
Nope! J'ai ajouté l'absolu OS chemin d'accès à mon répertoire statique et cela a fonctionné. Merci beaucoup.
Doux. Si vous souhaitez en savoir plus sur les fichiers statiques application ... docs.djangoproject.com/en/dev/ref/contrib/staticfiles/...
OriginalL'auteur slow_mondays
C'est la solution de travail statique/media/modèle d'accès dans django pour windows,
settings.py
OriginalL'auteur Amar Kamthe
Mon problème a été résolu par l'ajout de "STATICFILES_DIRS" settings.py fichier
OriginalL'auteur Przemysław Sajnóg
Pourquoi avez-vous pensez à qui? Si vous avez suivi la documentation officielle, vous n'avez pas trouvé. Lire ce que vous avez à faire pour le servir dans le développement ici.
Il y a un autre problème. Votre
STATIC_URL
est un lien relatif, afin que les navigateurs ajouter à l'existant URL de la page. Donc, si vous êtes sur la page/foo
,'static/css/style.css'
évalue à/foo/static/css/style.css'
.Assurez-vous qu'il commence par
/
- ie/static/
- ou est une URL complète, c'est à direhttp://myserver.com/static/
.localhost/static/
,localhost:8000/static
et/static/
tous avec le même résultat. Lorsque j'ai utilisé lalocalhost
méthode, j'ai tout simplement eu unabout:blank
page de google Chrome. Lorsque j'ai utilisé/static/
, j'ai reçu un autre 404.En réponse au lien que tu as donné, je suis en utilisant le
runserver
méthode et mes fichiers sont au STATIC_URL, qui (selon les docs) signifie qu'il devrait automatique. J'ai aussi essayé d'importer le module proposé par le lien, et toujours rien.OriginalL'auteur Daniel Roseman
Vérifier si
STATICFILES_FINDERS
est défini dans votresettings.py
https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_FINDERS
La valeur par défaut de
STATICFILES_FINDERS
est assez bon, mais vous avez 2 choix :vous devez avoir le fichier statique à l'intérieur d'une application et d'avoir cette application dans votre
INSTALLED_APPS
ou vous avez besoin de définir
STATICFILES_DIRS
avec votre chemin pour les fichiers statiques si attendre que le comportement de l'un desdjango.contrib.staticfiles.finders.FileSystemFinder
OriginalL'auteur Rach
J'ai rencontré ce problème aussi. Et j'ai résolu le problème grâce à la révision de la href comme ceci:
OriginalL'auteur user3489965
Ma solution a été
DEBUG = True
dans les paramètres.OriginalL'auteur maximm