以前,我看到过许多关于此问题的答案,但我尝试过的所有解决方案都没有。
我login.css没有login.html在Spring Boot应用程序中应用到我。我也在用Thymeleaf。
login.css
login.html
安全性已启用-但我不认为这是浏览器中的问题。我看不到加载失败login.css-仅显示以下消息:
资源被解释为样式表,但以MIME类型text / html传输:
浏览器中的进一步检查显示它正在请求text/css,但得到text/html响应。
text/css
text/html
的HTML:
<!doctype html> <html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatiable" content="IE-Edge"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="Login"/> <title>LOGIN</title> <!-- Latest compiled and minified CSS --> .... <link rel="stylesheet" href="login.css" content-type="text/css"/>
的路径 login.html
\src\main\resources\templates\login.html
的路径 login.css
\src\main\resources\static\login.css
以防万一这是我提出的权限问题:
.antMatchers("/css/**").permitAll()
我注意到通过CDN交付的所有CSS都没有问题。另外,浏览器返回login.css一个 302个状态码 。
谢谢
使用 Spring Boot + Spring MVC 编写一些代码时,我遇到了完全相同的问题。使用CDN设置的CSS文件运行良好,而我static/css文件夹中的CSS文件设置返回了HTML内容。
static/css
例:
<!-- This first worked fine, loading all styles --> <link th:href="@{/webjars/bootstrap/3.3.7/css/bootstrap.min.css}" href="http://cdn.jsdelivr.net/webjars/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" media="screen" /> <!-- This second one returned the content of an HTML - Content Type text/html --> <link rel="stylesheet" th:href="@{/css/login/style.css}" href="/css/login/style.css" />
一段时间后,我发现使用 Chrome开发工具 可以看到,本地返回的内容style.css与HTML页面之一相同。
style.css
检查指向具有该内容的HTML文件的路由,我可以意识到我在@RequestMapping配置中使用了错误的属性。我有@RequestMapping(name="..."),而不是@RequestMapping(path="...")。
@RequestMapping
@RequestMapping(name="...")
@RequestMapping(path="...")
控制器有问题
@RequestMapping(name = "/product/add", method = RequestMethod.GET) public String add(Model model) { model.addAttribute("product", new Product()); return "product/edit"; }
控制器已更改
@RequestMapping(path = "/product/add", method = RequestMethod.GET) public String add(Model model) { model.addAttribute("product", new Product()); return "product/edit"; }
更改属性后name,path所有内容均开始正确加载。
name
path
奇怪的是,这样的小错误如何影响了我的整个程序。
希望它对面临同样问题的人有所帮助。