我在Spring Boot MVC应用程序中使用Thymeleaf模板引擎,但是在加载样式方面有困难。该链接位于header.html
文件中(位于资源/模板/片段下),并在login.html
中引用(位于资源/模板下)。样式表位于resources / static / css目录中。
<head th:fragment="header">
<link rel="stylesheet" href="../../static/css/bootstrap.css" th:href='@{/css/bootstrap.css}' />
</head>
login.html
<html>
<header th:replace="fragments/header :: header"></header>
<body class="container">
<h1>Login page</h1>
// Code omitted for brevity
</body>
</html>
基于此question和其他来源,看来应用程序应该能够使用指定的链接加载样式表。然而,这种情况并非如此。具体来说,如果我在浏览器的“网络”标签中查看,对样式表的请求将返回302(而不是404),但是未应用样式。此外,如果我在Firefox中单击“样式编辑器”选项卡,则会收到Stylesheet could not be loaded: http://localhost:8080/css/bootstrap.css
消息。
问题可能是什么? 谢谢。
答案 0 :(得分:0)
我认为应该是
href="/static/css/bootstrap.css"
甚至
href="static/css/bootstrap.css"
通常,该资源在
下可用 http(s)://yourdomain/yourApplicationRoot/static/css/bootstrap.css
基本上,这是默认情况下spring公开静态资源的路径。
在您的情况下,它将是@{static/css/bootstrap.css}
(或以斜杠开头)
答案 1 :(得分:0)
您的链接标记应为
<link href="../../static/css/bootstrap.css"
th:href="@{css/bootstrap.css}" rel="stylesheet" media="screen"/>