解决IIS部署vue项目,文件缓存问题

一、具体流程

(1)IIS安装URL 重写模块

安装成功后如图

(2)IIS配置URL 重写匹配规则

添加一条规则 (我的模式是匹配所有文件的, 匹配模式需要自行查阅)

(3)根据匹配规则,重写文件的响应头

RESPONSE_Cache-Control=private, no-store, no-cache, must-revalidate, proxy-revalidate

(4)vue项目中index.html增加meta标签

<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">

二、存在问题

(1)一直以来我都有困惑,为啥我vue项目打包出来的文件是带有哈希值的,但浏览器依旧存在缓存,导致页面代码没有更新

  【问题解答】vue打包出来的文件中index.html没有hash值,浏览器采用了缓存的index.html文件,导致访问的js等文件路径参数没有变化,所以js上的hash值无法解决页面缓存问题。

(2)我在index.html的<head>中加入了禁止缓存的meta,但是未生效

<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">

  【问题解答】仅设置meta是无效的,需要配合服务器禁用缓存,才有效

三、解决方案

(1)IIS安装URL 重写模块

(2)IIS配置URL 重写规则

(3)index.html新增meta

四、测试用例

(1)配置前 第二次访问所有文件采用缓存, index.html不仅status为304 且大小仅77B(index.html的真实大小有1.1kb)

(2)配置后 第二次访问 html有1.1kb,说明没有采用缓存文件,  其他类型文件采用缓存

五、参考文档

URL重写插件官方文档: URL 重写模块 2.0 配置参考 | Microsoft Learn

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值