关于我正在使用的应用程序的一些背景知识: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 的缩小,这也是非常有用的。
哪种方法是正确的?提前致谢
最佳答案
我不知道“正确”的方法,但最常见的解决方案是使用静态文件的版本控制,例如 app.js 将变为 app-14gd54646rfw3.js,该数字通常是内容的 MD5,因此它将仅在文件更改时更改
使用 spring,您可以通过以下链接中描述的内置机制实现它 http://www.baeldung.com/cachable-static-assets-with-spring-mvc
如果你想使用具有连接和缩小功能的 Maven 插件,你可以使用 gulp 或 grunt 任务作为构建工具
你可以在这里找到更多信息 https://css-tricks.com/strategies-for-cache-busting-css/
关于javascript - Java/SpringMVC/Maven元素的缓存清除机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26869191/