摘要:用為靜態(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)文件不更新的尷尬,并且可以充分利用緩存。
demodjango_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.comdjango的庫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}%def>
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
摘要:在的配置項(xiàng)中,可能會(huì)見到這樣的字符。的情況的可以指定。值是特定于整個(gè)構(gòu)建過程的。。因此,以上兩個(gè)值中更推薦的是。中的則和前面的一樣,指定了結(jié)果的截取長度。的情況被引用的通過來得到帶的文件。所以,這可能并不是我們想要的。 在webpack的配置項(xiàng)中,可能會(huì)見到hash這樣的字符。 當(dāng)存在hash配置的時(shí)候,webpack的輸出將可以得到形如這樣的文件: page1_bundle_54e8...
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),...
摘要:原理修改和文件通過對(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è)帶...
摘要:入門和使用介紹這是的上的基本的介紹本質(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)模...
摘要:隨著承擔(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...
閱讀 2449·2021-10-08 10:17
閱讀 1824·2021-09-06 15:02
閱讀 2539·2019-08-29 17:30
閱讀 2663·2019-08-29 13:24
閱讀 1522·2019-08-29 11:12
閱讀 3337·2019-08-28 17:52
閱讀 666·2019-08-26 11:30
閱讀 3577·2019-08-26 11:01