[Django] À propos des paramètres liés aux fichiers statiques (css, js)

J'ai essayé de résumer la méthode de paramétrage du fichier css etc. dans Django

Qu'est-ce qu'un fichier statique?

Un fichier dont le contenu ne change pas en raison d'une demande d'un client tel que s'appelle un fichier statique.

Paramètres dans Setting.py

Trois paramètres principaux doivent être définis.

STATIC_URL Spécifiez l'URL pour la livraison de fichiers statiques. La valeur par défaut est «/ static /». http (s): // nom d'hôte / statique / ... Vous pourrez y accéder avec.

settings.py


STATIC_URL = '/static/'

STATICFILES_DIRS Spécifie où enregistrer les fichiers statiques dans le projet. La destination d'enregistrement par défaut est Nom du projet / nom de l'application / statique / nom de l'application / ... Cependant, il est difficile de placer static / app name / ... à chaque fois que vous souhaitez utiliser le fichier css dans plusieurs applications. Il est préférable de le définir comme suit et de le placer directement sous le répertoire du projet où se trouvent manage.py et le dossier de l'application.

settings.py


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

À propos, BASE_DIR est un chemin qui pointe directement sous le projet et est une variable définie dans settings.py comme indiqué ci-dessous.

settings.py


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

STATIC_ROOT La destination d'enregistrement du fichier statique référencé lorsque DEBUG = False dans setting.py. En d'autres termes, pour la production. Du point de vue de la sécurité, modifiez la destination de sauvegarde car il est préférable que la destination de sauvegarde du fichier statique dans le projet et la destination de sauvegarde dans la production soient différentes.

settings.py


STATIC_ROOT = '/var/www/Nom du projet/static' 

Paramètres dans urls.py

urls.py


from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('app1.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Tout d'abord, importez les paramètres et statiques. Ensuite, ajoutez-le à la variable urlpatterns comme ci-dessus. Spécifiez l'URL de livraison du fichier statique dans le premier argument et la destination d'enregistrement du fichier statique dans l'argument racine_document. En conséquence, l'URL et la destination d'enregistrement sont liées, et lorsque l'URL est accédée, elle sera connectée à la destination d'enregistrement du fichier statique. STATICFILES_DIRS n'est-il pas utilisé ici? Je pense que c'est parce que STATICFILES_DIRS est référencé lorsque STATIC_ROOT n'a pas été défini.

Comment appeler avec un modèle HTML

{% load static %}

<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}">
<img src="{% static 'images/logo.png' %}"> 

Commencez par activer statique avec {% load static%}. Et en spécifiant l'url dans chaque balise {% static'filename '%} Spécifier. Ceci décrit le chemin d'accès sous STATICFILES_DIRS ou STATIC_ROOT.

Dans l'exemple ci-dessus

project -static - images - logo.png
                L style.css
        Lmanage.py

Ce sera une structure telle que.

Recommended Posts

[Django] À propos des paramètres liés aux fichiers statiques (css, js)
Résumé des paramètres liés aux fichiers statiques (statiques) de Django
Python --Comparez Django css / js
Résumé du tutoriel Django pour les débutants par les débutants ⑥ (fichier statique)
Sites liés à Django
Paramètres Django + MySQL
Paramètres d'URL de Django