Un fichier dont le contenu ne change pas en raison d'une demande d'un client tel que s'appelle un fichier statique.
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'
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.
{% 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