Java / SpringMVC / Maven项目的缓存清除机制

时间:2014-11-11 16:07:12

标签: javascript css maven caching browser

关于我工作的应用程序的一些背景知识:Spring MVC,Java EE Web应用程序,Maven。

基本上,我正在寻找的是一种在每次部署应用程序时刷新所有JS和CSS文件的机制。现在,应用程序正在引用静态文件(例如" js / app.js")。每次对此文件进行更改时,在本地重新部署后,当浏览器下载它时,我们会得到304(文件尚未修改)。我的问题是:

1)在重新部署应用程序时再次提供这些文件会更好吗并使用应用程序版本作为缓存清除机制(例如" js / v1.0.0 / app.js")。这可以通过servlet过滤器完成。

2)由于该项目是一个maven动态Web项目,是否有某种插件可以执行此类操作。我在看wro4j看它是否可以做到这一点,但从我读到的很少,它主要用于处理这些JS和CSS的缩小,这也是非常有用的。

哪种方法正确?提前致谢

2 个答案:

答案 0 :(得分:1)

我不知道“正确”的方法,但最常见的解决方案是使用静态文件的版本控制,例如app.js将成为app-14gd54646rfw3.js数字通常是内容的MD5因此它将仅在文件更改时更改

使用弹簧,您可以通过内置机制实现它,如以下链接所述 http://www.baeldung.com/cachable-static-assets-with-spring-mvc

如果你想使用具有连接和缩小功能的Maven插件,你可以使用gulp或grunt任务作为构建工具

您可以在此处找到更多信息 https://css-tricks.com/strategies-for-cache-busting-css/

答案 1 :(得分:-2)

您应该向静态资源添加版本或在浏览器中禁用缓存