下面是我的文件目录树,html文件在src/main/webapp/templates,已经把src/main/webapp加入classpath。
src──main
├─java
│ └─com
│ └─ma2oo
│ └─quizbox
│ ├─application
│ ├─config
│ └─controllers
├─resources
└─webapp
├─static
│ ├─css
│ └─js
└─templates
网络配置文件是:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
System.out.println("reached here ");
registry.addResourceHandler("/resources/**").addResourceLocations("/static/");
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
registry.addInterceptor(localeChangeInterceptor);
}
}
html 中的 ref 链接是:
<link href="/static/css/components.css" rel="stylesheet"></link>
当网络服务器运行时,我无法从浏览器获得预期的结果,这与不存在 css 一样。
有人可以帮忙吗? 提前致谢。
最佳答案
由于您使用的是 Spring Boot,因此将资源放在 webapp
下并不是最好的主意。 .看这部分this官方 Spring Boot 文档
我建议您将现在拥有的所有静态内容移动到/webapp
下至 /resources
并摆脱 addResourceHandlers
配置方法,因为 Spring Boot 会自动正确映射静态内容。
那么例如你会得到 <link href="css/components.css" rel="stylesheet"></link>
有关使用静态内容的示例 Spring Boot 元素,请查看 this .
关于java - spring boot无法加载css文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314298/