我一直在遇到这个问题,每次,我只能通过创建一个似乎有用的新项目来解决它。这次我打算找出这种情况发生的原因,或者我经常遇到这种情况。 CSS文件作为HTML文件加载到服务器中,当我打开相关路径时,它们以HTML格式打开
位于templates / index.html
下的索引文件 <!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Title</title>
<link type="text/css" th:href="@{/css/styles.css}" href="../static/css/styles.css"
rel="stylesheet" />
</head>
<body>
<script type="text/javascript" th:src="@{/js/bootstrap.min.js}"></script>
<script type="text/javascript" th:src="@{/js/jquery.js}"></script>
</body>
</html>
这是我的CSS文件,位于resources / static / css / styles.css
下body {
color: blue;
}
我的classpath上有Spring安全性所以我将安全性配置为
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private static final String[] PUBLIC_MATCHERS = {
"/css/**",
"/js/**",
"/webjars/**",
"/static/**"
};
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests().antMatchers(PUBLIC_MATCHERS).permitAll()
.anyRequest().authenticated()
.and().formLogin();
}
}
我不明白为什么浏览器会这样加载
似乎所有资源都根据网络状态成功加载
当我点击styles.css时,这是调试器中的输出。我不知道为什么
在我再次启动新项目之前,非常感谢任何帮助。谢谢
答案 0 :(得分:0)
经过一系列测试后,我能够解决问题,产生这个问题。 当我将映射保留为允许我的控制器直接映射到根映射时,会出现问题。
示例是
@GetMapping // Here is the problem... This was the only method in the controller
public String home() {
return "index";
}
我通过设置像
这样的映射来解决这个问题@GetMapping(value= "/")
public String home() {
return "index";
}
或使用班级映射
@RequestMapping(value= "/")
public class Controller {
public String home() {
return "home";
}
}