2016-02-03 41 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

相关问题