98 votes

Django Fichiers statiques 404

Je n'arrive pas à faire apparaître mes fichiers statiques. J'ai essayé divers paramètres et configurations de répertoires, etc., mais ils n'apparaissent que sous la forme de 404. J'ai installé debug_toolbar et je sais donc que STATIC_URL atteint mon contexte de requête.

La structure du répertoire montre /static (j'ai également placé le répertoire à l'intérieur du dossier de l'application repas, et des utilisateurs, juste pour essayer.

/mealmate
    /mealmate
    /meals
    /static
        /css
             /bootstrap.min.css
    /templates
    /users

Settings.py (quelques paramètres importants bien que j'ai expérimenté avec une variété d'autres) :

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media/')

STATIC_URL = '/static/'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

WSGI_APPLICATION = 'mealmate.wsgi.application'

Dans le rendu de base.html

    <link rel="stylesheet" href="stackoverflow.com/static/css/bootstrap.min.css">

Des idées ? Merci

4voto

Ebrahim Karimi Points 155

Dans Django, vous avez un avantage supplémentaire pour vos modèles et c'est que vous pouvez lier les statiques comme ceci et peut-être que c'est votre problème !

<script src="{% static 'myapp/bootstrap.min.js' %}"></script>
<link href="{% static 'myapp/bootstrap.css' %}" rel="stylesheet" type="text/css"/>

il est préférable d'utiliser

{% static 'filename' %}

et c'est aussi plus facile d'en savoir plus, je me réfère à https://docs.djangoproject.com/en/1.11/intro/tutorial06/

4voto

yasin lachini Points 393

Ajouter ci-dessous dans setting.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

3voto

ahmad_mhm Points 99

Dans dans mon cas, mes fichiers statiques sont dans resources/static et j'ai défini quelques paramètres comme le souffle dans settings.py fichier :

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, './resources/static/'),
)

et je l'utilise dans mon modèle comme ceci :

% load static %}
    <link rel="stylesheet" type="text/css" href="{% static '/plugins/bootstrap/css/bootstrap.css' %}">

Cette méthode a fonctionné pour moi.

2voto

Abindent Points 21

Si vous souffrez de cette erreur, vérifiez d'abord si le débogage est vrai ou faux et si vous utilisez 'STATIC_ROOT' et 'STATICFILES_DIRS' ensemble.

Dans mon cas, j'ai utilisé les éléments suivants dans mon fichier settings.py :

import os (You have to import os at first)

#(If the app is in production mode then False. By default True)

   DEBUG = False 

#(If debug is false then add allowed hosts)

   ALLOWED_HOSTS = ['*'] 

#(Built in)

   STATIC_URL = '/static/' 

   STATIC_ROOT = 'static' (You have to add it to the code)

   STATICFILES_DIRS = [ os.path.join(BASE_DIR, '/static') ] (You have to add it to the code)

1voto

Insérez les lignes suivantes dans settings.py dans le dossier principal de votre projet :

STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join('static'))

Ensuite, dans le fichier html, insérez :

{% load static %}

Enfin, dans settings.py, ajoutez django.contrib.staticfiles en INSTALLED_APPS = [...]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X