前端 - 网页根目录改成子目录后,文件如何调用?
PHP中文网
PHP中文网 2017-04-18 09:06:32
0
4
907

用django写的程序,然后大概的问题是这样的.跟这个类似:

然后按照答案 改成 ./ 的话,首页是可以访问的,但是内页,文章页就不行了.
网站的结构 :

默认生成的都是 / 的,我知道把所有的链接前面加一个 目录的名称 比如 /001/ 也是可以访问的,但是感觉这样不够智能 而且也不够方便,求快捷的方法?

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(4)
刘奇

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 :

...
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOTS = os.path.join(BASE_DIR, 'assets')
...

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
參數 說明
STATIC_URL 靜態檔的URL pattern,這邊我們設為 /static/ ,那麼在網頁路徑中以 /static/ 開始的便會被視為靜態檔,如: http://127.0.0.1/static/hello.pnghttp://127.0.0.1/static/hi.js ,但如果是 http://127.0.0.1/restaurants/static/ 則會匹配urls.py中的路徑,而非靜態檔
STATICFILES_DIRS 開發時放置靜態檔的資料夾。允許設置多個資料夾來指示靜態檔的位置。如上面設定,我們可以在與BASE_DIR所指示的資料夾底下新增一個 static 資料夾,並把圖檔,css,js放在裡面
STATIC_ROOT 上線時放置靜態檔的資料夾。藉由python manage.py collectstatic ,Django 會將 STAIC_DIRS 下發現的靜態檔複製至 STATIC_ROOT 下。由於當設定檔的 DEBUG 設為 False 後,Django 預設便不會處理回傳靜態檔了,藉由指令將這些檔案集合到一個資料夾下,方便網頁伺服器管理及讀取
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 :

{% load staticfiles %}
...
    <img src="{% static 'img/logo.png' %}">
...

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.


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/

Peter_Zhu

.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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal