我在谷歌搜索了很多但是没有得到任何答案。为了避免缓存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>
但它根本不起作用。请帮帮我
答案 0 :(得分:1)
对于存储构建号码,我认为属性文件是最佳位置。对于您的问题,您可以使用Spring标记库获取此版本号,可以像这样包含
<div class="outerBdr">
<div class="cenBdr">
<input type="checkbox" id="name">
<label for="name">Name</label>
</div>
<div class="cenBdr">
<input type="checkbox" id="mark">
<label for="mark">Marks</label>
<div class="cenBdrInr">
<div>
<input type="checkbox" id="subj1">
<label for="sub1">Subj1</label>
<div class="cenBdrInr">
<div>
<input type="checkbox" id="subj1">
<label for="sub1">Subj1</label>
</div>
<div>
<input type="checkbox" id="subj2">
<label for="subj2">subj2</label>
</div>
<div>
<input type="checkbox" id="subj3">
<label for="subj3">subj3</label>
<div class="cenBdrInr">
<div>
<input type="checkbox" id="subj1">
<label for="sub1">Subj1</label>
</div>
<div>
<input type="checkbox" id="subj2">
<label for="subj2">subj2</label>
</div>
</div>
</div>
</div>
</div>
<div>
<input type="checkbox" id="subj2">
<label for="subj2">subj2</label>
</div>
<div>
<input type="checkbox" id="subj3">
<label for="subj3">subj3</label>
</div>
</div>
</div>
<div class="cenBdr">
<input type="checkbox" id="id">
<label for="id"> ID</label>
</div>
<div class="cenBdr">
<input type="checkbox" id="rank">
<label for="rank"> Rank</label>
</div>
<div class="cenBdr">
<input type="checkbox" id="rating">
<label for="rating"> rating</label>
<div class="cenBdrInr">
<div>
<input type="checkbox" id="subj1">
<label for="sub1">Subj1</label>
<div class="cenBdrInr">
<div>
<input type="checkbox" id="subj1">
<label for="sub1">Subj1</label>
</div>
<div>
<input type="checkbox" id="subj2">
<label for="subj2">subj2</label>
</div>
<div>
<input type="checkbox" id="subj3">
<label for="subj3">subj3</label>
<div class="cenBdrInr">
<div>
<input type="checkbox" id="subj1">
<label for="sub1">Subj1</label>
</div>
<div>
<input type="checkbox" id="subj2">
<label for="subj2">subj2</label>
</div>
</div>
</div>
</div>
</div>
<div>
<input type="checkbox" id="subj2">
<label for="subj2">subj2</label>
</div>
<div>
<input type="checkbox" id="subj3">
<label for="subj3">subj3</label>
</div>
</div>
</div>
<div class="cenBdr">
<input type="checkbox" id="class">
<label for="class"> class</label>
</div>
</div>
已更新
然后,您可以从ApplicationServlet.xml中配置的属性文件中获取内部版本号,最后可以使用内部版本号,如下所示,
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
您的applicationServlet-servlet.xml文件必须包含类似的内容,
<spring:message code="buildNumber" var="buildNumber" />
<link rel="stylesheet" href="<c:url value="/resources/css/custom/select2.css?${buildNumber}"/>" type="text/css" />
在这里,您可以将您的内部版本号存储在名为buildNumber.properties的单独属性文件中,并具有此类条目<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>
。
您可以随时在将最新代码部署到服务器时更改内部版本号。
通过这种方式,您可以确保在部署新版本的应用程序时,您的客户不需要清除自己的浏览器缓存。
答案 1 :(得分:0)
请在您的属性文件中使用此键值,但我不确定您的方案,这对我有用。 browser.cache.disabled=true