javascript - Spring MVC 和 Thymeleaf 资源版本控制

标签 javascript java spring-mvc caching thymeleaf

Resource Hierarchy My Project

我正在尝试使用 Spring Mvc 4 进行资源版本控制。我使用 thymeleaf 模板引擎。但不适用于以下代码。加载页面时,我在查看页面源代码时看不到新版本的 Url。那么我的问题是什么代码?我想念什么?

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/static/theme*//**").addResourceLocations("/resources/static/theme/")
            .setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS))
            .resourceChain(false)
            .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
            .addTransformer(new CssLinkResourceTransformer());
    registry.addResourceHandler("/static*//**").addResourceLocations("/resources/static/")
            .setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS))
            .resourceChain(false)
            .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
            .addTransformer(new CssLinkResourceTransformer());
    registry.addResourceHandler("/static/js*//**").addResourceLocations("/resources/static/js/")
            .setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS))
            .resourceChain(false)
            .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
            .addTransformer(new CssLinkResourceTransformer());
}

@Bean
public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {
    return new ResourceUrlEncodingFilter();
}

我在脚本标签中使用 with 表达式。 th:src="@{/resources/static/js/companyList.js}"

最佳答案

我管理它没有代码,只在 application.properties 中配置:

# Enable HTML5 application cache manifest rewriting.
spring.resources.chain.html-application-cache=true

# Enable the Spring Resource Handling chain. Disabled by default unless at least one strategy has been enabled.
spring.resources.chain.enabled=true
# Enable the content Version Strategy.
spring.resources.chain.strategy.content.enabled=true
# Comma-separated list of patterns to apply to the Version Strategy.
spring.resources.chain.strategy.content.paths=/**

我不需要添加任何其他代码来获取 CSS 和 JS 的 URL 中的哈希版本。

关于javascript - Spring MVC 和 Thymeleaf 资源版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48732894/

相关文章:

javascript - require.JS 的 backbone 如何工作?

javascript - 未定义的href! (DOM API)

java - 在 AWS EC2 实例上从 JAVA 运行 Bash 命令

java - @ExceptionHandler 没有捕获 HttpMessageNotReadableException

java - 管理员上传的配置文件保存在哪里?

javascript - onmouseover 不起作用,函数未定义

javascript - 在查找字符串中字符出现的频率时,此语法的确切含义是什么?

java - 如何使用 apache POI 创建包含两个 CategoryAxis 的 LineChart?

java - 使用 tomcat 在 ubuntu 10.10 中运行 Servlet

spring - Spring MVC-HttpSession.setAttribute和model.addObject之间的区别