vue怎么设置html不缓存 但是js、css等文件做缓存

在 Vue.js 项目中,我们通常使用 webpack 打包工具进行编译构建,其中 HTML 文件通常不做缓存,而 JS、CSS 文件需要做缓存。这可以通过 webpack 的配置实现。下面是针对你的问题的步骤:

1. 打开 webpack 的配置文件 webpack.config.js 或者 webpack.prod.config.js(如果你的项目是基于 vue-cli 搭建的,可能需要修改 vue.config.js 文件)
2. 为了让 JS、CSS 文件在每次编译后都产生新的文件名防止浏览器缓存,我们需要对 output 配置做如下修改:

```javascript
output: {
  filename: '[name].[chunkhash].js',
  chunkFilename: '[id].[chunkhash].js'
}
```
上面的配置确保每次编译后产生新的文件名,"[chunkhash]"是根据文件内容计算出来的 hash ,内容不变则 hash 不变,所以有效避免了浏览器缓存。

3. 对于 CSS ,我们需要使用 ExtractTextPlugin 插件,同样在其配置中加入内容哈希:

```javascript
new ExtractTextPlugin('[name].[contenthash].css')
```

4. HTML 文件不缓存,首先我们需要知道,一般来说,HTML 是没有做浏览器缓存的,除非你在服务器配置了强制缓存。如果你的服务器对 HTML 文件配置了强制缓存,你需要修改服务器的配置,设置 no-cache 或 must-revalidate 来禁止 HTML 文件的缓存。

5. 其次,如果你使用了 webpack 的 HtmlWebpackPlugin 插件来生成 HTML 文件,你需要确保这个插件的配置中没有设置缓存。如果有的话,你需要关闭这个配置:

```javascript
new HtmlWebpackPlugin({
  ...,
  cache: false
})
```

以上就是在 Vue.js 中设置 HTML 不缓存,而 JS、CSS 文件做缓存的具体方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章