如何为CSS,JS,JSP文件提供版本控制

时间:2019-06-29 15:50:29

标签: java html angularjs spring-mvc jsp

我已经开发了一个具有多个视图的单页Web应用程序。为了渲染这些视图,使用了ng-if。这些视图没有标题或正文部分,而只有html代码。

每个视图都有一个单独的控制器。许多点击功能已使用Jquery处理。对于后端,已使用java。整个应用程序是在Spring MVC中开发的,并已部署在WebLogic上。

问题是,无论何时我对视图(.jsp文件)或js或css文件进行任何更改,在部署新的WAR文件而不清除缓存并进行硬刷新(ctrl + F5)后,它都不会得到反映。 / R)。

我以服务人员的形式得到了答复,但IE10不支持它。

我需要一个永久的解决方案,因为我有5000多个用户,并且我不能要求每个部署之后的每个人都这样做。

当我将它包含在(filename.js?version = 2.1)的index.jsp中时,我试图提供一个版本。但这似乎对我不起作用。我没有在chrome或任何其他浏览器上测试此功能,因为只有IE10,edge可供我和用户使用。

我唯一想做的是,只要.css,.jsp,.js文件中有更新,浏览器就应该用较新的文件替换较旧的文件。

预先感谢

2 个答案:

答案 0 :(得分:1)

您可以做的是对HTML页面中包含的所有文件进行版本化

<html>
<head>
  <script src='whatever.v1_2_3.js'></script>
  <link href='whatever.v3_4_5.css'/>
</head>
<body>
...
</body>
</html>

这样,每当您更改HTML中的版本时,如果文件尚未缓存,文件将被下载,从而迫使浏览器始终处于最新状态。

答案 1 :(得分:0)

创建一个像window.app_version = 2.0这样的全局变量,然后在引用html页面的任何地方添加版本。 'views/layouts/plain.html?v='+window.app_version

每次构建应用时,只需更新app_version