對Django中static文件的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下對Django中static文件的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運營經(jīng)驗。主營GPU顯卡服務(wù)器,站群服務(wù)器,BGP機房服務(wù)器托管,海外高防服務(wù)器,大帶寬服務(wù)器,動態(tài)撥號VPS,海外云手機,海外云服務(wù)器,海外服務(wù)器租用托管等。

加載靜態(tài)文件的步驟如下:

首先確保django.contrib.staticfiles已經(jīng)添加到settings.INSTALLED_APPS中。

確保在settings.py中設(shè)置了STATIC_URL。

注意: 上面兩條都是在創(chuàng)建Django 項目的時候就自動給我們弄好了,只要我們沒有去改動它,就不用管。

在已經(jīng)安裝了的app下創(chuàng)建一個文件夾叫做static,然后再在這個static文件夾下創(chuàng)建一個當前app的名字的文件夾,再把靜態(tài)文件放到這個文件夾下。例如你的app叫做book,有一個靜態(tài)文件叫做book.jpg,那么路徑為book/static/book/book.jpg。(為什么在app下創(chuàng)建一個static文件夾,還需要在這個static下創(chuàng)建一個同app名字的文件夾呢?原因是如果直接把靜態(tài)文件放在static文件夾下,那么在模版加載靜態(tài)文件的時候就是使用book.jpg,如果在多個app之間有同名的靜態(tài)文件,這時候可能就會產(chǎn)生混淆。而在static文件夾下加了一個同名app文件夾,在模版中加載的時候就是使用app名/book.jpg,這樣就可以避免產(chǎn)生混淆。)

注意: 文件夾的名字必須為static 。

如果有一些靜態(tài)文件是不和任何app掛鉤的。即不再任何一個app的目錄下。那么可以在settings.py中添加STATICFILES_DIRS,以后DTL就會在這個列表的路徑中查找靜態(tài)文件。例如我們在manage.py的同級目錄下新建一個static的文件夾。然后在settings.py:中添加STATICFILES_DIRS

STATICFILES_DIRS = [
 os.path.join(BASE_DIR,"static")
]

注: 第三種和第四種方法都可以加載靜態(tài)文件,我的個人習(xí)慣是在manage.py的同級目錄下新建一個static文件夾,然后將所有的靜態(tài)文件進行分類的在里面存儲。而不去app中新建一個static的文件夾。但這只是我的個人習(xí)慣。畢竟不管是黑貓白貓,能抓到老鼠的就是好貓,所以只要我們能把項目做出來能運行,并且代碼結(jié)構(gòu)有邏輯性、層次感就行了。

在模版中使用load標簽加載static標簽。比如要加載在項目的static文件夾下的style.css的文件。那么示例代碼如下:

{% load static %}

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

注意: {% load static %}需要放在html的頭部位置(至少在使用static標簽的上面),一般都是放在html的最上面。如果{% extend %}標簽和{% load static %}同時存在,{% extend %}需要放在最上面,然后再放{% load static %}等標簽。

如果不想每次在模版中加載靜態(tài)文件都使用load加載static標簽,那么可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],這樣以后在模版中就可以直接使用static標簽,而不用手動的load了。

注意: 位置不要添加錯誤了

TEMPLATES = [
  {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
    ,
    'APP_DIRS': True,
    'OPTIONS': {
      'context_processors': [
        'django.template.context_processors.debug',
        'django.template.context_processors.request',
        'django.contrib.auth.context_processors.auth',
        'django.contrib.messages.context_processors.messages',
      ],
      #添加在這個位置
      'builtins' : [
        'django.templatetags.static'
      ],
    },
  },
]

下面的不常用,但是可以了解一下。

如果沒有在settings.INSTALLED_APPS中添加django.contrib.staticfiles。那么我們就需要手動的將請求靜態(tài)文件的url與靜態(tài)文件的路徑進行映射了。

示例代碼如下:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
 # 其他的url映射
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

但平時我們并不會用到這個,Django內(nèi)置已經(jīng)將django.contrib.staticfiles添加進去了的,我們?yōu)槭裁匆o他刪除來自找麻煩呢?放在這里也只是提供一個參考,了解一下。

最后分享一個快捷鍵的使用:在我們寫項目的時候,有時候修改了代碼而沒有效果,這是因為瀏覽器使用的緩存加載,這個時候我們就可以使用這個快捷鍵來不使用緩存加載一個文件,來達到查看修改代碼之后的效果的目地。

ctrl+shift+r 不使用緩存加載一個文件

以上是“對Django中static文件的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:對Django中static文件的示例分析-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article18/dpihgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計、用戶體驗、網(wǎng)站設(shè)計、品牌網(wǎng)站制作

廣告

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

成都網(wǎng)站建設(shè)公司