国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

用django-pipeline為靜態(tài)文件添加hash

luxixing / 2158人閱讀

摘要:用為靜態(tài)文件添加為什么需要靜態(tài)文件請(qǐng)看大公司里怎樣開發(fā)和部署前端代碼張?jiān)讫埖拇鸢浮_@樣避免了修改后用戶靜態(tài)文件不更新的尷尬,并且可以充分利用緩存。首先導(dǎo)入需要引用靜態(tài)文件的地方使用未的文件路徑

用django-pipeline為靜態(tài)文件添加hash 為什么需要hash靜態(tài)文件?

請(qǐng)看大公司里怎樣開發(fā)和部署前端代碼? 張?jiān)讫埖拇鸢浮?/p>

這樣,當(dāng)靜態(tài)文件有修改時(shí),會(huì)很方便的拿到最新的修改版本,而未修改的靜態(tài)文件則依然使用緩存。這樣避免了修改后用戶靜態(tài)文件不更新的尷尬,并且可以充分利用緩存。

demo

django_pipeline_demo

安裝
sudo mkdir /opt/projects
git clone https://github.com/duoduo369/django_pipeline_demo.git
cd django_pipeline_demo
ln -s $(pwd) /opt/projects
ln -s /opt/projects/django_pipeline_demo/deploy/nginx/django_pipeline.conf /etc/nginx/sites-enabled
pip install -r requirements.txt
python manage.py runserver 0.0.0.0:9888
nginx -s reload
vim /etc/hosts 添加 127.0.0.1:9888 django_pipline_demo.com
django的庫pipeline

mako, django-mako, django-pipeline-demo

效果是這樣的,以 django_pipeline_demo 為例。

先說最終用法

debug必須為False(上線本來就是False),如果為True則使用django默認(rèn)查找靜態(tài)文件的方式,不會(huì)使用pipeline。

python manage.py collectstatic

重啟django項(xiàng)目

重點(diǎn)代碼解釋

settings.py的幾個(gè)配置,
如何安裝配置django-pipeline,請(qǐng)移步文檔.

解釋幾個(gè)collect有關(guān)的配置

# python manage.py collectstatic 后文件會(huì)扔到STATIC_ROOT下面
STATIC_ROOT = "./statics"

# django的模板會(huì)從這些目錄下查找
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "templates"),
)

# 開發(fā)時(shí)css的路徑,collectstatic會(huì)從這里查找然后丟到STATIC_ROOT下
# 使用pipeline后會(huì)在靜態(tài)文件中添加hash碼,例如css/index.css
# collectstatic后會(huì)變成 css/index.as1df14jah8dfh.css
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static_dev"),
)

templates/common/static_pipeline.html

這是用mako定義了一個(gè)url,以后靜態(tài)文件使用這個(gè)url導(dǎo)入,就可以找到hash的版本了。

<%!
from django.contrib.staticfiles.storage import staticfiles_storage
%>

<%def name="url(file)"><%
try:
    url = staticfiles_storage.url(file)
except:
    url = file
%>${url}

index.html

首先導(dǎo)入/common/static_pipeline.html,需要引用靜態(tài)文件的地方使用${static.url("未hash的文件路徑")}

<%namespace name="static" file="/common/static_pipeline.html"/>
....
    
....

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/61772.html

相關(guān)文章

  • Webpack中hash

    摘要:在的配置項(xiàng)中,可能會(huì)見到這樣的字符。的情況的可以指定。值是特定于整個(gè)構(gòu)建過程的。。因此,以上兩個(gè)值中更推薦的是。中的則和前面的一樣,指定了結(jié)果的截取長度。的情況被引用的通過來得到帶的文件。所以,這可能并不是我們想要的。 在webpack的配置項(xiàng)中,可能會(huì)見到hash這樣的字符。 當(dāng)存在hash配置的時(shí)候,webpack的輸出將可以得到形如這樣的文件: page1_bundle_54e8...

    蘇丹 評(píng)論0 收藏0
  • webpack4初學(xué)習(xí)

    webpack基于node,因此想要學(xué)習(xí)webpack首先要安裝node。webpack4要安裝node8.2以上版本。 1、安裝webpack 為什么選擇本地安裝,主要是由于以后介紹熱更新這一部分不會(huì)報(bào)錯(cuò),如果全局安裝熱更新就會(huì)報(bào)錯(cuò),以本部分為基礎(chǔ)依次介紹,保證各部分不會(huì)出錯(cuò)。 mkdir webpack-test cd webpack-test npm init //初始化npm,都選擇默認(rèn),...

    Object 評(píng)論0 收藏0
  • 前端靜態(tài)資源版本更新與緩存之——通過gulp 在原h(huán)tml文件上自動(dòng)化添加js、css版本號(hào)

    摘要:原理修改和文件通過對(duì)文件內(nèi)容進(jìn)行運(yùn)算,生成一個(gè)文件的唯一字符串如果文件修改則號(hào)會(huì)發(fā)生變化替換中的文件名,生成一個(gè)帶版本號(hào)的文件名方案現(xiàn)在網(wǎng)上的方案都是生成一個(gè)新的目錄,里面包含了要發(fā)布的等文件。 原理 修改js和css文件 通過對(duì)js,css文件內(nèi)容進(jìn)行hash運(yùn)算,生成一個(gè)文件的唯一hash字符串(如果文件修改則hash號(hào)會(huì)發(fā)生變化) 替換html中的js,css文件名,生成一個(gè)帶...

    suosuopuo 評(píng)論0 收藏0
  • webpack4搭建腳手架_04

    摘要:入門和使用介紹這是的上的基本的介紹本質(zhì)上,是一個(gè)現(xiàn)代應(yīng)用程序的靜態(tài)模塊打包器。在處理應(yīng)用程序時(shí),它會(huì)在內(nèi)部創(chuàng)建一個(gè)依賴圖,用于映射到項(xiàng)目需要的每個(gè)模塊,然后將所有這些依賴生成到一個(gè)或多個(gè)。的文檔新接手的項(xiàng)目,從輪子開始就自己搭建。 webpack4入門和使用 webpack介紹 這是webpak的上的基本的介紹:本質(zhì)上,webpack 是一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模...

    JowayYoung 評(píng)論0 收藏0
  • webpack4介紹與總結(jié)

    摘要:隨著承擔(dān)地職責(zé)越來越大,模塊化開發(fā)的需求越來越急迫。我們可以把當(dāng)成是模塊化標(biāo)準(zhǔn)的實(shí)現(xiàn)方案,但的功能不僅限于此。支持多種模塊使用方式,包括的。下面介紹一下在工程中常用的。最后一個(gè)的輸出就是我們最終要的結(jié)果。在文件有值的情況下,是必要的。 由于web應(yīng)用擴(kuò)展地得極其迅猛,前端技術(shù)也是日新月異,前端的苦不是有多難學(xué),而是我剛學(xué)完,這東西就被淘汰了(手動(dòng)哭臉)。框架方面我們有vue、react...

    yanbingyun1990 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<