设置javascript文件的版本.Java EE+Tomcat
Set version of javascript file. Java EE + Tomcat
通过向javascript和css添加更新,我希望避免强制用户按Ctrl+F5来刷新缓存的js和css文件。
禁用缓存也不是一个选择。
为此,我想将版本添加到js和css链接中,如
< link href="~/CSS/file.css?MY_VERSION" rel="stylesheet" />
理想情况下,版本必须类似于构建日期和时间的构建号
但我如何自动设置?
我不想在每次更新后手动更新所有jsp文件中的这些值。所以问题是
- maven可以将构建版本添加到jsp文件中吗
- 如果第一点不可能,我如何(以及在哪里)设置具有当前日期和时间的应用程序全局变量?例如,我不能将它放入servlet中,因为它是随每个请求构建的
- 做到这一点的最佳实践是什么?也许我的方法完全不正确
是的,我们做了类似的事情(对于css文件中的图像引用):
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>anticache</id>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<includes>
<include>target/classes/**/*.css</include>
</includes>
<replacements>
<replacement>
<token>anti-cache=anti-cache-parameter</token>
<value>anti-cache=${maven.build.timestamp}</value>
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
只需检查文件模式以匹配您的JS文件,然后在JS文件中:
< link href="~/CSS/file.css#anti-cache=anti-cache-parameter" rel="stylesheet" />
请注意,我在这里没有使用请求参数(?),而是使用#。这是为了避免浏览器缓存受到影响,因为有了请求参数,浏览器缓存将挂在文件的每个版本上。另请参阅:在相同的url 上用新图像刷新图像
现在,正如所说,我们使用这个,但它也不是一个理想的解决方案,但我认为不存在理想的解决办法。
另请参阅不同浏览器中的缓存行为:https://github.com/podlipensky/RefreshButton
相关文章:
- Java EE servlet 页面重定向 + 向控制器发送数据
- 设置javascript文件的版本.Java EE+Tomcat
- 加快Java EE应用程序的JavaScript编程
- 什么是Java EE Web应用程序中图表和图形的最佳API和工具
- Java EE 消息动态推送
- JavaScript文件默认模板在Java EE Eclipse中不起作用
- 使用基于Java EE表单的身份验证时出现Javascript问题
- Glassfish 3.1.1中的Java EE web应用程序异步登录
- 从服务器向浏览器发送请求(Java EE)
- Java EE应用程序的UI技术
- 为什么我的两个不同angularjs服务解析为同一个restful Java EE web服务
- Angular Seed是Java EE应用程序所必需的吗
- HTML5-使用Java EE将图像附加到邮件
- Modal在引导JSF Java EE项目中
- 将url分配给Java EE项目中的ajax (js)函数
- 显示Excel表在web应用程序- Java EE
- Java EE:如果日期选择器为空,则不提交
- Eclipse,不要在JAVA EE和Javascript透视图之间共享选项卡
- 在开发过程中将AngularJS认证到Java EE (grunt server " "JBoss&
- 如何避免在每次创建要部署在glassfish上的新Java EE包时复制整个dojo库