django模板加載靜態(tài)文件

加載靜態(tài)文件

在一個網(wǎng)頁中,不僅僅只有一個html骨架,還需要css樣式文件,js執(zhí)行文件以及一些圖片等。因此在DTL中加載靜態(tài)文件是一個必須要解決的問題。在DTL中,使用static標(biāo)簽來加載靜態(tài)文件。要使用static標(biāo)簽,首先需要{% load static %}。加載靜態(tài)文件的步驟如下:

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

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

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

  4. 如果有一些靜態(tài)文件是不和任何app掛鉤的。那么可以在settings.py中添加STATICFILES_DIRS,以后DTL就會在這個列表的路徑中查找靜態(tài)文件。比如可以設(shè)置為:

     STATICFILES_DIRS = [
         os.path.join(BASE_DIR,"static")
     ]
    
    
  5. 在模版中使用load標(biāo)簽加載static標(biāo)簽。比如要加載在項目的static文件夾下的style.css的文件。那么示例代碼如下:

     {% load static %}
     <link rel="stylesheet" href="{% static 'style.css' %}">
     
  1. 如果不想每次在模版中加載靜態(tài)文件都使用load加載static標(biāo)簽,那么可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],這樣以后在模版中就可以直接使用static標(biāo)簽,而不用手動的load了。

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

    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        # 其他的url映射
    ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項目部署到阿里云(nginx+uwsgi)上后,靜態(tài)文件加載沒有問題。但是在本地,使用開發(fā)服務(wù)器,卻始終加載不成功...
    蘭山小亭閱讀 5,736評論 0 9
  • Django 準(zhǔn)備 “虛擬環(huán)境為什么需要虛擬環(huán)境:到目前位置,我們所有的第三方包安裝都是直接通過 pip inst...
    33jubi閱讀 1,394評論 0 5
  • 處理靜態(tài)文件,尤其是在開發(fā)時,是一件很頭疼的事情。在這篇文章中,我們將會討論一些設(shè)置,目錄結(jié)構(gòu)和他們之間的相互影響...
    51reboot閱讀 1,778評論 0 1
  • 模塊間聯(lián)系越多,其耦合性越強(qiáng),同時表明其獨(dú)立性越差( 降低耦合性,可以提高其獨(dú)立性)。軟件設(shè)計中通常用耦合度和內(nèi)聚...
    riverstation閱讀 2,228評論 0 8
  • 一、Django框架前言知識: 1、C/S和B/S的區(qū)別: C/S結(jié)構(gòu)軟件:客戶端/服務(wù)端軟件,即客戶端要自己下載...
    月下獨(dú)酌123閱讀 5,150評論 0 36

友情鏈接更多精彩內(nèi)容