如何在django中加載靜態(tài)文件-創(chuàng)新互聯(lián)

如何在django中加載靜態(tài)文件?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、HTML5建站、網(wǎng)站制作、成都品牌網(wǎng)站建設(shè)、微信小程序開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

首先要在settings文件中進(jìn)行設(shè)置,關(guān)于靜態(tài)文件的設(shè)置選項(xiàng)主要由以下幾項(xiàng):

1. STATIC_URL = '/static/'

指定靜態(tài)文件查找的url。這樣設(shè)置后一般來說我們只要把靜態(tài)文件放在 APP 中的 static 目錄下就可以,但是有時(shí)我們有一些共用的靜態(tài)文件,這時(shí)候可以設(shè)置 STATICFILES_DIRS 另外弄一個(gè)文件夾。

2.STATIC_ROOT =os.path.join(BASE_DIR, 'collected_static')

當(dāng)運(yùn)行 python manage.py collectstatic 的時(shí)STATIC_ROOT 文件夾是用來復(fù)制所有STATICFILES_DIRS文件夾中的文件,以及各app中static中的文件。把這些文件放到一起是為了用apache等部署的時(shí)候更方便。

3.    

STATICFILES_DIRS = (
  ("images",os.path.join(STATIC_URL, 'images').replace('\\', '/')),
  ("css",  os.path.join(STATIC_URL, 'css').replace('\\', '/')),
  ("js",  os.path.join(STATIC_URL, 'js').replace('\\', '/')),
)

其它存放靜態(tài)文件的文件夾,可以用來存放項(xiàng)目中公用的靜態(tài)文件,里面不能包含 STATIC_ROOT如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以。

 4.   

STATICFILES_FINDERS = (
  "django.contrib.staticfiles.finders.FileSystemFinder",
  "django.contrib.staticfiles.finders.AppDirectoriesFinder"

)

默認(rèn)設(shè)置,相當(dāng)于搜索引擎,Django 默認(rèn)會(huì)在 STATICFILES_DIRS中的文件夾和 各app下的static文件夾中找文件。注意有先后順序,找到了就不再繼續(xù)找了。

 那如何在模版中使用這些靜態(tài)文件呢?可以參考如下代碼,其中語句{% load static from staticfiles %}在這個(gè)模版文件中只需要出現(xiàn)一次。

{% load static from staticfiles %}

<link href="{% static" rel="external nofollow" css/sample.css" %}" rel="stylesheet">

用下邊的方法也可

{% load static from staticfiles %}
{% static "css/sample.css" assample %}
<link href="{{ sample }}" rel="external nofollow" rel="stylesheet">

Django在運(yùn)行時(shí)會(huì)自動(dòng)將這些文件映射到STATIC_URL所給定的值下。也就是如,如果STATIC_URL = '/static/',那么在運(yùn)行時(shí),上邊模版中的樣例中的url會(huì)被替換為/static/css/sample.css。

這里做兩點(diǎn)說明:

1.其實(shí)將靜態(tài)文件路徑硬編碼在模版中也可以正常運(yùn)行,如使用href="/static/css/sample.css" rel="external nofollow" ,前提是配置好了STATIC_URL和STATIC_DIRS。但并不推薦這么做,因?yàn)槿绻髞盱o態(tài)資源的位置發(fā)生了遷移,如使用獨(dú)立服務(wù)器或者使用CDN,就要修改一大堆URL。而使用推薦的方法可以避免這個(gè)龐大的工作量,最多只需要修改STATIC_URL即可。

2.如果css文件中也使用了靜態(tài)文件如css背景,則按照相對(duì)路徑使用即可,因?yàn)闉g覽器解析css是會(huì)自動(dòng)按照相對(duì)路徑尋找到正確的URL。

看完上述內(nèi)容,你們掌握如何在django中加載靜態(tài)文件的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞名稱:如何在django中加載靜態(tài)文件-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://muchs.cn/article14/djggde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)域名注冊(cè)、網(wǎng)站策劃關(guān)鍵詞優(yōu)化、微信公眾號(hào)移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)