我的文件夹结构
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都被删除了。它只是显示为纯文本。我在不同的浏览器中尝试过这种方法,结果相同。我做错了什么?
答案 0 :(得分:3)
如果您检查浏览器控制台(例如在Chrome中),我猜您会看到CSS 404找不到您的CSS文件。问题在于您的CSS URL路径。
重点是文件(.html,.css)存储在JAR文件(或源代码中)以及HTTP服务器如何提供它们之间存在差异。据我所知,你正在使用百里香,因此(我再次猜测),您的HTML模板文件可以用于不同类型的网址(例如/
,/book/23
等),因此我不会# 39;建议使用相对URL来解决CSS文件(正如你所做的那样)。
由于CSS文件存储在static
目录中,它们应该由/**
模式的spring boot自动提供,即。如果您不使用任何上下文路径,则您的CSS应具有以下网址:/css/main.css
。
如果您想要非常正确并准备好您的网络应用程序可以处于不同的环境中,那么您应该使用类似<link rel="stylesheet" th:href="@{/css/main.css}">