我在和spring boot合作一个项目。 我在/src/main/resources/statig/css/
下有一个main.css文件
我使用以下thymeleaf代码将。css文件从/templates文件夹注入到。html文件中:
<link rel="stylesheet" th:href="@{/css/main.css}" href="../static/css/main.css" />
我可以分别通过http://localhost:1126/css/main.css
打开它
我使用这个。html作为一个详细的错误页面。 因此,如果URL不存在,则显示这个。html。 如果URL具有“一个深度”(例如localhost:1126/something
),则可以正常工作(显示。html,加载。css)。
但是如果我使用至少具有“两个深度”的URL,或者甚至在结尾带有“/”(例如localhost:1126/something/
或localhost:1126/something/anything
),则无法工作(显示。html,但不加载。css)。
问题是,在第二种情况下,spring试图在localhost:1126/something/css/main.css
下找到。css文件
到目前为止我尝试的方法:
使用th:href=“@{/css/main.css}”
而不是th:href=“@{css/main.css}”
和
@SpringBootApplication
@EnableWebMvc
public class SpringBootProjectApplication implements WebMvcConfigurer {
public static void main(String[] args) {
SpringApplication.run(SpringBootProjectApplication.class, args);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**").addResourceLocations("classpath:/css/");
}
}
我发现这些线程对我的问题没有答案:
Thymeleaf,IntelliJ和spring boot没有正确加载CSS文件
spring boot,Thymeleaf和CSS
CSS文件无法定位Thymeleaf spring boot
spring boot默认的BasicErrorController将直接查看src/main/resources/templates/folder,如果您将错误html页面添加为“error.html”,则可以显示无论何时发生错误