Les extraits suivants sont tirés d'un livre précédent que j'ai écrit : C'est Django
Utiliser des fichiers statiques
Les sites Web dynamiques nécessitent également des fichiers statiques, tels que des images, des fichiers CSS, JS, etc. utilisés par le site Web. Comment gérons-nous et utilisons-nous ces fichiers statiques ? Tout d'abord, nous ajoutons deux dossiers mysite et static sous la couche supérieure assets. Le dossier static est un répertoire utilisé pour placer les fichiers statiques lors du développement. Plusieurs sous-répertoires peuvent être ajoutés sous ce répertoire pour placer différents fichiers. Types de fichiers statiques, tels que la configuration de img pour placer des images ou de css pour placer des fichiers CSS. Et assets est le répertoire dans lequel les fichiers statiques sont placés lorsque le site Web est réellement en ligne. La raison pour laquelle ces deux répertoires sont séparés est que nous devons confier la gestion des fichiers statiques au serveur Web lorsqu'il est en ligne.
Ensuite, allons sur settings.py pour le configurer :
Au total, trois paramètres sont définis ici. La description détaillée est la suivante :
Paramètres
Description
STATIC_URL
Le modèle d'URL des fichiers statiques, ici nous le définissons sur /static/, puis le chemin de la page Web commençant par /static/ sera pris en compte sous forme de fichiers statiques, tels que : http://127.0.0.1/static/hello.png, http://127.0.0.1/static/hi.js, mais s'il s'agit de http://127.0.0.1/restaurants/static/, il correspondra au chemin dans urls.py au lieu du fichier statique
STATICFILES_DIRS
Le dossier dans lequel les fichiers statiques sont placés pendant le développement. Permet la configuration de plusieurs dossiers pour indiquer l'emplacement des fichiers statiques. Comme indiqué ci-dessus, nous pouvons ajouter un dossier
sous le dossier indiqué par BASE_DIR et y mettre les fichiers image, css et js
STATIC_ROOT
Le dossier dans lequel les fichiers statiques sont placés lors de la connexion. Avec python manage.py collectstatic, Django copiera les fichiers statiques trouvés sous STAIC_DIRS vers STATIC_ROOT. Car lorsque le DEBUG du fichier de configuration est défini sur False, Django ne traitera pas le retour des fichiers statiques par défaut. Ces fichiers sont collectés dans un dossier via la commande to. faciliter la gestion et la lecture du serveur Web
Après avoir défini les paramètres ci-dessus, vous pouvez utiliser les fichiers statiques dans le dossier STATICFILES_DIRS du modèle. Supposons que le site Web veuille ajouter une image logo.png (la mettre sur mysite/static/img/logo.png) sur la page, nous écrirons ceci sur le modèle :
...
<img src='/static/img/logo.png'>
...
Vous avez terminé. Mais si un jour le chemin de la page Web du fichier statique est obligé d'être changé en /static_file/, il faudra trouver le chemin et le modifier un modèle à la fois. Une comparaison avec "Django" est la suivante :
N'oubliez pas de charger staticfiles dans le modèle d'abord, puis d'utiliser la balise {% static ...%}. Après les ajustements ci-dessus, Django convertira {% static 'img/logo.png' %} en '/static/img/logo.png' lors du traitement des fichiers statiques, et lorsque vous devrez modifier le chemin du fichier statique, vous pourrez modifier en toute sécurité et audacieusement le settings.py dans le fichier STATIC_URL. Il n'est pas nécessaire de s'inquiéter de modifier un grand nombre de modèles.
Si vous faites référence à l'URL correspondant à View, vous pouvez lire ce document https://docs.djangoproject.com/en/1.9/intro/tutorial03/#removing-hardcoded-urls-in-templates
Si vous faites référence à des fichiers statiques, tels que js, css, vous pouvez y parvenir en modifiant le STATIC_URL dans la configuration de Django https://docs.djangoproject.com/en/ 1.9/comment faire /fichiers-statiques/
.NET a une réécriture d'url sortante Cela semble déroutant Pour faire simple, ajoutez un filtre avant la sortie HTML Remplacez toutes les adresses de lien commençant par /
Les extraits suivants sont tirés d'un livre précédent que j'ai écrit : C'est Django
Utiliser des fichiers statiques
Les sites Web dynamiques nécessitent également des fichiers statiques, tels que des images, des fichiers CSS, JS, etc. utilisés par le site Web. Comment gérons-nous et utilisons-nous ces fichiers statiques ? Tout d'abord, nous ajoutons deux dossiers
mysite
etstatic
sous la couche supérieureassets
. Le dossierstatic
est un répertoire utilisé pour placer les fichiers statiques lors du développement. Plusieurs sous-répertoires peuvent être ajoutés sous ce répertoire pour placer différents fichiers. Types de fichiers statiques, tels que la configuration deimg
pour placer des images ou decss
pour placer des fichiers CSS. Etassets
est le répertoire dans lequel les fichiers statiques sont placés lorsque le site Web est réellement en ligne. La raison pour laquelle ces deux répertoires sont séparés est que nous devons confier la gestion des fichiers statiques au serveur Web lorsqu'il est en ligne.Ensuite, allons sur
settings.py
pour le configurer :Au total, trois paramètres sont définis ici. La description détaillée est la suivante :
/static/
, puis le chemin de la page Web commençant par/static/
sera pris en compte sous forme de fichiers statiques, tels que : http://127.0.0.1/static/hello.png, http://127.0.0.1/static/hi.js, mais s'il s'agit de http://127.0.0.1/restaurants/static/, il correspondra au chemin dansurls.py
au lieu du fichier statique/static/
,那麼在網頁路徑中以/static/
開始的便會被視為靜態檔,如: http://127.0.0.1/static/hello.png 、 http://127.0.0.1/static/hi.js ,但如果是 http://127.0.0.1/restaurants/static/ 則會匹配urls.py
中的路徑,而非靜態檔BASE_DIR
所指示的資料夾底下新增一個static
資料夾,並把圖檔,css,js放在裡面python manage.py collectstatic
,Django 會將STAIC_DIRS
下發現的靜態檔複製至STATIC_ROOT
下。由於當設定檔的DEBUG
設為False
後,Django 預設便不會處理回傳靜態檔了,藉由指令將這些檔案集合到一個資料夾下,方便網頁伺服器管理及讀取BASE_DIR
et y mettre les fichiers image, css et jspython manage.py collectstatic
, Django copiera les fichiers statiques trouvés sousSTAIC_DIRS
versSTATIC_ROOT
. Car lorsque leDEBUG
du fichier de configuration est défini surFalse
, Django ne traitera pas le retour des fichiers statiques par défaut. Ces fichiers sont collectés dans un dossier via la commande to. faciliter la gestion et la lecture du serveur WebAprès avoir défini les paramètres ci-dessus, vous pouvez utiliser les fichiers statiques dans le dossier
STATICFILES_DIRS
du modèle. Supposons que le site Web veuille ajouter une imagelogo.png
(la mettre surmysite/static/img/logo.png
) sur la page, nous écrirons ceci sur le modèle :Vous avez terminé. Mais si un jour le chemin de la page Web du fichier statique est obligé d'être changé en
/static_file/
, il faudra trouver le chemin et le modifier un modèle à la fois. Une comparaison avec "Django" est la suivante :N'oubliez pas de charger
staticfiles
dans le modèle d'abord, puis d'utiliser la balise{% static ...%}
. Après les ajustements ci-dessus, Django convertira{% static 'img/logo.png' %}
en'/static/img/logo.png'
lors du traitement des fichiers statiques, et lorsque vous devrez modifier le chemin du fichier statique, vous pourrez modifier en toute sécurité et audacieusement lesettings.py
dans le fichierSTATIC_URL
. Il n'est pas nécessaire de s'inquiéter de modifier un grand nombre de modèles.Questions auxquelles j'ai répondu : Python-QA
Si vous faites référence à l'URL correspondant à View, vous pouvez lire ce document
https://docs.djangoproject.com/en/1.9/intro/tutorial03/#removing-hardcoded-urls-in-templates
Si vous faites référence à des fichiers statiques, tels que js, css, vous pouvez y parvenir en modifiant le STATIC_URL dans la configuration de Django
https://docs.djangoproject.com/en/ 1.9/comment faire /fichiers-statiques/
.NET a une réécriture d'url sortante
Cela semble déroutant
Pour faire simple, ajoutez un filtre avant la sortie HTML
Remplacez toutes les adresses de lien commençant par /
Apache semble être capable d'utiliser les fichiers .htaccess pour réécrire l'adresse consultée, une règle habituelle