方案一
:修改完静态文件手动修改静态文件后的版本号
优点:方案简单
缺点:工作量巨大,不方便维护
<script type="text/javascript" src="test.js?v=20180418"></script>
方案二
:静态文件后添加随机版本
id
优点:方便改造,在每个静态文件后
+?version=Math.random()
缺点:
version
每次都是新的,会重新请求服务端,会对服务器造成压力
方案三
:静态文件后的版本号从配置文件读取
优点:一次改造,终身受益
方案描述:
1.
实现
ServletContextAware
接口
在系统启动的时候,将版本号信息存放到
ServletContext
中,这个版本号从配置文件读取
demo
是硬编码。属性名设置为
resourceVersion
public
class
ResourceVersion
implements
ServletContextAware {
private
ServletContext
servletContext
;
public
ServletContext getServletContext() {
return
servletContext
;
}
@Override
public
void
setServletContext(ServletContext
servletContext
) {
//
TODO
Auto-generated method stub
this
.
servletContext
=
servletContext
;
}
public
void
init(){
double
version
=Math.
random
();
//
产生随机数
getServletContext().setAttribute(
"resourceVersion"
,
version
);
}
}
2.
配置
bean
<bean id="resourceVersion" class="com.zhaogang.backend.finance.common.base.ResourceVersion" init-method="init"/>
3.
在静态资源处引用
<script type="text/javascript" src="test.js?v=${resourceVersion}"></script>
4.
观察效果