gpt4 book ai didi

java - Spring 在文件名中提供带点的静态内容

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

我想通过 Spring 提供由 npm 构建产生的网页,一切正常,但我无法提供名称为 main.xxxx.yyy 的资源,无论真正的后缀是什么(css、js 或html)。

目录树是这样的:

src/main/resource/resource
index.html
asset-manifest.json
favicon.ico
manifest.json
service-worker.js
static
css
main.fc656101.css
main.fc656101.css.map
js
main.91794276.js
main.91794276.js.map
media
banner.bdcf92f4.jpg
fontawesome-webfont.912ec66d.svg
...

这是应用类:

@SpringBootApplication
public class Application {
private static Logger log=Logger.getLogger(Application.class.getName());

@Bean
WebMvcConfigurer configurer () {
return new WebMvcConfigurerAdapter() {

@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/static/*").
addResourceLocations("classpath:/static/");
}
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
super.configurePathMatch(configurer);

configurer.setUseSuffixPatternMatch(false);
}
};
}

public static void main(String[] args) {

SpringApplication.run(Application.class, args);
}

为了调试这个问题,我手动重命名了一些文件并且它有效,所以我将问题限制在文件名中有点。

我看到有人在 RestControllers 的请求映射中添加 {variable:.+} 解决了类似的问题,但我没有 Controller ,所以我不知道该怎么做。

编辑:

我发现这个配置:

@Configuration
class ServletConfig extends WebMvcConfigurerAdapter {

@Override
public void configurePathMatch(final PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(false);
configurer.setUseTrailingSlashMatch(false);
}

@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}

}

现在它提供所有 *.html,包括 page.01.html,但仍然不提供 style.01.css 或 script.01.js。我认为这是一个不同的问题,原来的问题由 ContentNegotiationConfigurer 解决。

最佳答案

我写这应该是个很傻的问题...

问题出在浏览器缓存和项目清理上。请务必始终清除缓存(这很明显),但也要在更改配置后从提供静态内容的地方清理项目。停止并重新启动 JAVA 是不够的。

这花了我三天时间,但现在可以用了,正确的配置是我发布的第一个,不需要 contentNegotiation 配置。

希望这可以为其他人节省一天时间!

关于java - Spring 在文件名中提供带点的静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47722325/

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