【解决前端静态页面缓存的问题】

环境说明

  • 后台框架:springboot
  • 前台语言:html,css,js,jquery,bootstrap

问题描述

项目每次发布后,如果前台的html或css或js有改动,必须先清空浏览器的缓存才能看到修改后的效果

解决办法

在项目打war包时,给项目中的css,js 添加版本号

  1. 修改pom.xml,在properties中添加版本号的取值规则
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
  1. 修改pom.xml,在plugins中替换规则,在css/js文件末尾追加?v=时间戳
<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!-- css,js 打包添加版本号,解决前端页面样式缓存问题 -->
			<plugin>
                <groupId>com.google.code.maven-replacer-plugin</groupId>
                <artifactId>replacer</artifactId>
                <version>1.5.3</version>
                <executions>
                    <execution>
                    		 <!-- 设置生命周期 -->
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>replace</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- 自动识别到项目target文件夹 -->
                    <basedir>${project.build.directory}</basedir>
                    <!-- 替换的文件所在目录规则 -->
                    <includes>
                        <include>**/*.html</include>
                    </includes>
                    <replacements>
                        <!-- 更改规则,在css/js文件末尾追加?v=时间戳,反斜杠表示字符转义 -->
                        <replacement>
                            <token>\.css\"</token>
                            <value>.css?v=${maven.build.timestamp}\"</value>
                        </replacement>
                        <replacement>
                            <token>\.css\'</token>
                            <value>.css?v=${maven.build.timestamp}\'</value>
                        </replacement>
                        <replacement>
                            <token>\.js\"</token>
                            <value>.js?v=${maven.build.timestamp}\"</value>
                        </replacement>
                        <replacement>
                            <token>\.js\'</token>
                            <value>.js?v=${maven.build.timestamp}\'</value>
                        </replacement>
                    </replacements>

                </configuration>
            </plugin>

3.在前端html页面中设置meta标签 清除页面缓存

	<!--  Pragma:设定禁止浏览器从本地计算机的缓存中访问页面内容。这样设定,访问者将无法脱机浏览-->
    <meta http-equiv="Pragma" content="no-cache">
    <!--  Cache-Control:指定请求和响应遵循的缓存机制。-->
    <meta http-equiv="Cache-Control" content="no-store,no-cache">
    <!-- expires:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输 -->
    <meta http-equiv="expires" content="0">
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值