我在谷歌上搜索了很多,但没有得到任何相同的答案。为了避免缓存js和css文件,我们可以在字符串后面附加一个版本号,就像我下面所做的那样。
<script type="text/javascript"
src="<c:url value='/resources/js/Invoice.js?version=1.0'/>">
</script>
但我希望使用一些随机数而不是1.0,以避免缓存如下内容:
<script type="text/javascript"
src="<c:url value='/resources/js/Invoice.js?version=<%=Math.random()%>' />">
</script>
但是它根本不起作用。
对于存储构建号,我认为属性文件是最好的地方。对于你的问题,你可以使用Spring标签库得到这个构建号,它可以像这样包含,
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
然后您可以从ApplicationServlet.xml中配置的属性文件中获取构建号,最后可以像下面这样使用构建号,
<spring:message code="buildNumber" var="buildNumber" />
<link rel="stylesheet" href="<c:url value="/resources/css/custom/select2.css?${buildNumber}"/>" type="text/css" />
您的applicationServlet-servlet.xml文件必须包含如下内容,
<beans:bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<beans:property name="basenames">
<beans:list>
<beans:value>buildNumber</beans:value>
<beans:value>gui</beans:value>
<beans:value>message</beans:value>
</beans:list>
</beans:property>
</beans:bean>
在这里,您可以将构建号存储在名为buildNumber的单独属性文件中。属性,并有这样的条目,buildNumber=601
.
您可以随时更改构建号,以便将最新代码部署到服务器。
有了这个,你可以确保你的客户端不需要在部署新版本的应用程序时清除自己的浏览器缓存。
请在您的属性文件中使用此键值,但我不确定您的场景,这对我有效。browser.cache.disabled=true