Spring 启动 CSS 剥离
Spring Boot CSS stripped
我的文件夹结构
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" />
我的 Java 类
中没有 EnableWebMvc
当我 运行 将其作为 jar 时,页面正常显示,但所有 CSS 都被删除了。它只是显示为纯文本。我在不同的浏览器中尝试过,结果相同。我做错了什么?
如果您检查浏览器控制台(例如在 Chrome 中),我猜您会看到 CSS 文件未找到 HTTP 404。问题在于您 URL 到 CSS 的路径。
要点在于,文件 (.html, .css) 在 JAR 文件(或源代码)中的存储方式与由HTTP 服务器。据我所知,您正在使用 thymeleafs,因此(我再次猜测),您的 HTML 模板文件可以用于不同类型的 URLs(如 /
、/book/23
等),因此我不建议使用相对 URL 来处理 CSS 文件(就像你所做的那样)。
由于 CSS 文件存储在 static
目录中,它们应该由 spring boot for /**
模式自动提供,即。如果你不使用任何上下文路径,你的 CSS 应该有以下 URL: /css/main.css
.
如果你想非常正确并准备好你的 Web 应用程序可以在不同的 "context" 中,你应该使用类似 <link rel="stylesheet" th:href="@{/css/main.css}">
的东西
我的文件夹结构
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" />
我的 Java 类
中没有EnableWebMvc
当我 运行 将其作为 jar 时,页面正常显示,但所有 CSS 都被删除了。它只是显示为纯文本。我在不同的浏览器中尝试过,结果相同。我做错了什么?
如果您检查浏览器控制台(例如在 Chrome 中),我猜您会看到 CSS 文件未找到 HTTP 404。问题在于您 URL 到 CSS 的路径。
要点在于,文件 (.html, .css) 在 JAR 文件(或源代码)中的存储方式与由HTTP 服务器。据我所知,您正在使用 thymeleafs,因此(我再次猜测),您的 HTML 模板文件可以用于不同类型的 URLs(如 /
、/book/23
等),因此我不建议使用相对 URL 来处理 CSS 文件(就像你所做的那样)。
由于 CSS 文件存储在 static
目录中,它们应该由 spring boot for /**
模式自动提供,即。如果你不使用任何上下文路径,你的 CSS 应该有以下 URL: /css/main.css
.
如果你想非常正确并准备好你的 Web 应用程序可以在不同的 "context" 中,你应该使用类似 <link rel="stylesheet" th:href="@{/css/main.css}">