gpt4 book ai didi

java - 使用 Spring 3 过滤器在资源路径中嵌入时间戳?

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:11 25 4
gpt4 key购买 nike

使用 Spring 3 MVC 设置一些过滤器是否可行,其中通过在文件名中嵌入一些时间戳,在流式传输到客户端时修改 javascript 文件和 css 文件的路径。然后,当稍后请求这些资源时,另一个过滤器会删除这些时间戳?

这是为了防止重新部署应用程序时出现缓存的 js/css 文件问题

我需要做什么来设置它?如何设置过滤器以用时间戳替换路径,然后如何设置过滤器以稍后删除时间戳?

我只需要 web.xml 中有关 Spring 3 MVC 配置的信息,我同意过滤器中的实际代码需要执行的操作

最佳答案

使用Spring的资源映射可能会更简单<mvc:resources> ,它将虚拟路径映射到 CSS 和 Javascript 文件的真实位置。虚拟路径可以包含您的应用程序的版本。这意味着当您部署应用程序的新版本时,发送到浏览器的 CSS 和 Javascript 的路径与以前不同,这会欺骗浏览器,使其认为它们是新资源 - 因此会重新加载它们。

例如在/resources 中映射 CSS 和 Javascript 文件:

<mvc:resources location="/resources" mapping="/resources-1.2.0/**"/>

这表示任何以 URL 模式/resources-1.2.0 后跟任何内容(例如/resources-1.2.0/css/styles.css)传入的请求,都会在 Web 根目录中名为 resources 的文件夹中查找该文件。

当您在部署之间更新应用程序版本时,CSS 和 Javascript 资源的虚拟路径将会更改,因此浏览器将被迫重新加载文件 - 即使实际文件位于相同的旧位置。

您也可以使应用程序版本动态 - 因此您无需修改​​配置文件。

有关于整个方法的更深入的文章 here .

关于java - 使用 Spring 3 过滤器在资源路径中嵌入时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16672699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com