我正在设置一个Spring启动服务器,但我无法让Thymeleaf链接到CSS。我知道有很多类似的问题,但没有一个能让我得到答案。
这是我的" home.html"。
中包含的链接<link rel="stylesheet" type="text/css"
href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" th:href="@{/styles/main.css}"
href="../styles/main.css" />
bootstrap.min.css链接很好,但main.css给了我一个404。
这是它在网络下的网络控制台中显示的内容,这个网址带我转到白标错误
Request URL:http://localhost:8080/styles/main.css
答案 0 :(得分:1)
尝试在名为static的资源和名为css的子文件夹下创建一个文件夹,然后在那里移动你的css文件,例如:resources/static/css/main.css
然后称之为:
<link rel="stylesheet" type="text/css" th:href="@{/css/main.css}"/>
答案 1 :(得分:1)
默认情况下,应该有一个static
文件夹,您的css内容应该在public
内resources
。运行应用程序时查看springboot控制台,并查看它从哪里提供资源。示例如下:
Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
根据上述信息,相应地设置您的资源位置。
答案 2 :(得分:0)
你试过了吗?
<link rel="stylesheet" type="text/css" th:href="@{../styles/main.css}" />
答案 3 :(得分:0)
您的styles
文件夹位于类路径的根目录;它应该移动到Spring Boot实际配置的位置(参见"serving static content" in the Spring Boot reference documentation)。
在您的情况下,将src/main/resources/styles
移至src/main/resources/static/styles
应该可以解决问题。
答案 4 :(得分:0)
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(
"/img/**",
"/css/**",
"/libs/**")
.addResourceLocations(
"classpath:/static/img/",
"classpath:/static/css/",
"classpath:/static/libs/");
}
}