一尘不染

Spring Boot CSS被剥离

spring-mvc

我的文件夹结构

ProjectName
 src/main/java
 src/main/resources
    static
       css
         styles.css
         main.css
       js
       ...
    templates

我所有的html文件都在文件夹中 templates

我的HTML文件头

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
...
<link rel="stylesheet" href="../static/css/main.css" />
<link rel="stylesheet" href="../static/css/styles.css" />

我的EnableWebMvc任何Java类中都没有

当我将其作为jar运行时,页面显示正常,但是所有CSS都被剥离了。它只是显示为纯文本。我已经在不同的浏览器中尝试了相同的结果。我究竟做错了什么?


阅读 302

收藏
2020-06-01

共1个答案

一尘不染

如果您检查浏览器控制台(例如在Chrome中),我猜您会在CSS文件中看到“找不到HTTP 404”。问题出在您的CSS网址路径上。

最主要的一点是,文件(.html,.css)在JAR文件(或源代码)中的存储方式以及HTTP服务器对文件的存储方式有所不同。至于我看到你正在使用thymeleafs,因此(我的猜测再次),你的HTML模板文件,可以担任了不同种类的URL(如//book/23等),因此我不建议用相对URL地址CSS文件(就像您一样)。

由于CSS文件存储在static目录中,因此应由Spring
Boot自动提供用于/**模式的文件,即。如果你不使用任何上下文路径,你的CSS应该有以下网址:/css/main.css

如果您想非常正确并且准备好将Web应用程序置于不同的“上下文”中,则应使用类似 <link rel="stylesheet" th:href="@{/css/main.css}">

2020-06-01