2016-02-03 46 views
5

有人可以告訴我[hash]和[chunkhash]的用途是什麼,它們來自哪裏?webpack [hash]和[chunkhash]的用途是什麼?

output: { 
    path: "/home/proj/cdn/assets/[hash]", 
    publicPath: "http://cdn.example.com/assets/[hash]/" 
} 
+0

有你讀一個webpack.github [這](https://webpack.github.io/docs/long-term-caching.html)的解釋。 IO? –

+0

是的,但它仍然不清楚它爲 –

+1

hm ...建造了什麼...... [here](https://medium.com/@okonetchnikov/long-term-caching-of-static-assets-with-webpack-1ecb139adb95 #.oibt9ye3h)也是相當有趣的話題。可能它會很容易理解你 –

回答

3

基本上它涉及到瀏覽器cacheing - 當你成爲你的資產通常要告訴客戶端/瀏覽器,他們可以使用相同的腳本/樣式表/ JPEG等,而無需下載它每一次。這通過發送適當的HTTP頭字段來完成。

然後,問題是你應該告訴客戶端他們可以繼續使用相同樣式表多長時間?如果你重新設計你的網站,他們不下載你的新樣式表,他們不會看到這些變化。解決方案通常是爲樣式表文件名添加某種標識符或版本號 - 如果此樣式/版本在樣式表更改時發生更改(因此文件名不同),則瀏覽器將再次下載它(這稱爲緩存破壞)。

基本上,webpack可以向捆綁輸出名稱添加一個哈希值,作爲捆綁內容的函數,當內容發生變化時,它會有所不同,從而實現流程的自動化。 chunkhash做同樣的事情,如果你正在分割成多個塊。

下面有一些非的WebPack相關討論:Strategies for Cache-Busting CSS

相關問題