gpt4 book ai didi

java - Thymeleaf 和带指纹的静态资源

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:37 25 4
gpt4 key购买 nike

我尝试使用 ResourceResolvers 和 ResourceTransformers 为我的一些静态文件(例如 app.min.js/style.min.css)添加指纹后缀 http://spring.io/blog/2014/07/24/spring-framework-4-1-handling-static-web-resources

我已经像这样配置了 ResourceHandler

@Configuration
@EnableWebMvc
public class ResourceResolverConfiguration extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("bower_components/**/*.js", "/assets/**", "/build/**")
.addResourceLocations("/bower_components/", "/assets/", "/build/","classpath:/META-INF/webapp/build/")
.resourceChain(true)
.addResolver(
new VersionResourceResolver()
.addContentVersionStrategy("/**")
);
}
}

在我的主 Controller 中,我添加了一些调试日志。

logger.debug("js =  '{}'" + this.resourceUrlProvider.getForLookupPath("/build/app.js"));
logger.debug("css = '{}'" + this.resourceUrlProvider.getForLookupPath("/build/styles/style.css"));

运行Web应用程序后,从调试日志中,每个文件中都有指纹

app-5d2c76ad6517f26d252d5cc93a4fc7d2.js

我可以直接访问这个文件,(即通过 localhost:8080/build/app-5d2c76ad6517f26d252d5cc93a4fc7d2.js)

但是,当我在网络浏览器中点击查看源代码时,它仍然是一个没有任何指纹的原始文件。

在我的 layout.html 中,我像这样加载脚本/链接。

 <script th:src="@{/build/app.js}"></script>
<link th:href="@{/build/styles/style.css}" rel="stylesheet"></link>

我使用 Thymeleaf 作为模板引擎。要使 Thymeleaf 包含指纹文件,配置或代码应该是什么?还是我遗漏了什么?

非常感谢。

最佳答案

确保您包含适当的编码过滤器,@{} 语法用于重写 URL:

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

关于java - Thymeleaf 和带指纹的静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29914302/

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