Cet article vous présente principalement les informations pertinentes sur STATIC_ROOT, STATIC_URL et STATICFILES_DIRS dans Django. L'article les présente en détail à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de chacun. Les amis qui en ont besoin peuvent suivre Let's. jetez un œil ensemble
Avant-propos
Cet article vous présente principalement le contenu pertinent sur STATIC_ROOT, STATIC_URL et STATICFILES_DIRS dans Django. votre avantage. Veuillez vous y référer pour référence. Je n’en dirai pas plus ci-dessous. Jetons un coup d’œil à l’introduction détaillée.
Les détails sont les suivants :
Tout d'abord, nous configurons le fichier statique et ajoutons les lignes de code suivantes à settings.py :
settings.py
# the settings above # STATIC SETTINGS STATIC_URL = '/static/' # BASE_DIR 是项目的绝对地址 STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static') #以下不是必须的 STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'), )
1.STATIC_ROOT
STATIC_ROOT est en cours de déploiement. fichiers statiques Lorsque (pyhtonmanage.pycollectstatic) tous les répertoires d'agrégation statique, STATIC_ROOT doivent être écrits comme une adresse absolue. Ici, par exemple, mon projet monsite est /home/mysite/
Alors STATIC_ROOT est /home. /monsite /collect_static/
Lors du déploiement du projet, saisissez dans le terminal :
python manage.py collectstatic
Django supprimera tous les statiques fichiers Copier dans le dossier STATIC_ROOT
2.STATICFILES_DIRS
STATIC_ROOT n'entre en jeu que lors du déploiement. Dans les situations réelles, il existe deux emplacements de placement généraux pour les types de fichiers statiques. :
1. La première consiste à créer un nouveau dossier statique dans chaque application et à y placer des fichiers statiques. Lors du chargement de fichiers statiques, par exemple, si vous souhaitez utiliser des fichiers statiques dans des modèles, Django recherchera automatiquement. le dossier statique dans chaque application (donc, n'écrivez pas mal le nom du dossier, sinon Django ne pourra pas trouver votre dossier)
2 L'autre méthode consiste à rechercher le dossier statique dans toutes les applications. . En dehors du fichier de l'application, créez un dossier public. Étant donné que certains fichiers statiques ne sont pas propres à une certaine application, vous pouvez les placer dans un dossier public pour une gestion facile (remarque, créez un dossier de fichiers statiques public. C'est juste un dossier facile à utiliser. gérer, mais ce n'est pas nécessaire. Les applications peuvent appliquer des fichiers statiques entre les applications, car à la fin, tous les fichiers statiques existeront dans STATIC_ROOT)
Alors quel est le problème maintenant pour faire savoir à Django que vous avez mis ? certains fichiers statiques dans un dossier public en dehors de l'application, vous devez configurer STATICFILES_DIRS
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'), )
STATICFILES_DIRS dit à Django : Tout d'abord, recherchez les fichiers statiques dans STATICFILES_DIRS , puis recherchez dans le dossier statique de chaque application (notez que Django recherche les fichiers statiques paresseusement et arrête la recherche lorsqu'il trouve le premier)
3.STATIC_URL
Jusqu'à présent, le mécanisme de fichiers statiques peut fonctionner, mais il y a une question : puis-je accéder directement aux fichiers statiques de mon projet via l'URL. La réponse est définitivement La, mais veuillez noter que vous y accédez via un navigateur ? Vous ne pouvez pas saisir l'adresse locale absolue de votre fichier statique. Par exemple, l'adresse locale d'une de mes images
est /home/mysite/common_static /myapp/photo.png
STATIC_URL = '/static/'
HTTP:/ /192.168 .1.2:8000/static équivaut à STATIC_ROOT de l'adresse locale
Comment utiliser Ajax dans Django
Comment empêcher la page de formulaire dans Django de se soumettre automatiquement après l'actualisation
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!