javascript - Java/SpringMVC/Maven元素的缓存清除机制

标签 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 的缩小,这也是非常有用的。

哪种方法是正确的?提前致谢

最佳答案

我不知道“正确”的方法,但最常见的解决方案是使用静态文件的版本控制,例如 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/

相关文章:

javascript - 为什么WebDriverJS是异步的?

javascript - 为什么我的 $scope 在我的 Controller 中无法访问 - Angular JS?

javascript - 更改脚本以在文档单击时隐藏菜单

html - 固定元素问题 - 无法使其可滚动

jquery - 如何使用 gridstack.js 从本地存储设置小部件数据

java - Java 自定义插件的结束​​安装

javascript - 如何一次将一个元素多次添加到数组中

javascript - CSS 过渡结合 JS clickEvent

web-services - spring boot部署外部tomcat

java - 找不到参数的方法 compile() [com.android.support :cardview-v7:27. 0.2]