提问者:小点点

用Thymeleaf(spring boot)修复。css的位置路径


我在和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


共1个答案

匿名用户

spring boot默认的BasicErrorController将直接查看src/main/resources/templates/folder,如果您将错误html页面添加为“error.html”,则可以显示无论何时发生错误