問題:
我們每次發(fā)布H5更新的時候總會遇到這樣的問題咽弦,用戶在微信中看到的H5頁面是沒有改動過的,但是我們明明已經(jīng)更新了H5胁出,只能清理緩存才能看到最新的修改型型。
原因:
因為微信官方的web-view 是會緩存頁面靜態(tài)資源的比如:js、css全蝶、圖片等闹蒜,優(yōu)先顯示的緩存中的資源,過一段時間(時間不定抑淫,一天或者幾小時绷落,無明顯規(guī)律)是可以自動進行緩存清除的,但是對于當時用戶來說想要第一時間就看到正確的頁面始苇。
如何解決呢砌烁?
我們可以對Taro項目的config/index.js
文件,進行如下配置:
const config = {
...
h5: {
publicPath: '/',
staticDirectory: 'static',
output: {
filename: 'js/[name].[hash].js',
chunkFilename: 'js/[name].[chunkhash].js'
},
imageUrlLoaderOption: {
limit: 5000,
name: 'static/images/[name].[hash].[ext]'
},
miniCssExtractPluginOption: {
filename: 'css/[name].[hash].css',
chunkFilename: 'css/[name].[chunkhash].css',
},
...
},
}
我來解釋下催式,咱們配置了靜態(tài)文件的目錄函喉,然后每次通過npm run build:h5
命令打包程序的時候,會自動將靜態(tài)資源文件后面追加hash數(shù)值(見截圖)荣月,這樣靜態(tài)文件發(fā)生變化的時候會生成新的hash值管呵,這樣每次發(fā)包的靜態(tài)文件路徑就是不同的了,所以升級版本就避免了緩存的問題哺窄。
打包后的文件截圖:
image.png
image.png
參考: http://www.reibang.com/p/dbfdece084d5
https://www.594cto.com/content/d4f16a5bfbc44acaa6a48db40ddadea7