我有一个Spring Boot 2项目并使用Thymeleaf模板引擎。 文件夹结构是:
main\
resources\
static\
assets\
css\
my.css
js\
templates\
index.html
(1)如果我在index.html中将my.css称为../static/assets/css/my.css,我可以直接在浏览器中查看index.html(file:/// path / to / main /resources/templates/index.html)但是如果我在JetBrains IDEA中运行项目,并将其浏览为http://localhost:8080/,则浏览器控制台告诉找不到my.css。
(2)如果我在index.html中将my.css作为assets / css / my.css引用,当我直接在浏览器中查看index.html时(file:/// path / to / main / resources / templates / index.html)浏览器告诉找不到my.css,但如果我在JetBrains IDEA中运行项目,并将其浏览为http://localhost:8080/,浏览器视图就会变好。
因为Thymeleaf网站表示它对程序员和设计师的设计时间,运行时间和合作都很友好,那么有谁能告诉我如何构建我的静态资源和html模板文件夹关系来实现这个目标?先谢谢了!
答案 0 :(得分:5)
在Spring引导中,静态文件从位置$blocksize = $stats['values'][count($stats['values']) - 1]['y'];
提供,并且位于应用程序URL的根目录下。
例如,如果您有src/main/resources/static
,那么当您运行该应用程序时,它位于src/main/resources/static/assets/css/my.css
位置。
因此,您可以将其包含在http://localhost:8080/assets/css/my.css
中,如下所示:
index.html
这样,当您在浏览器中打开<link rel="stylesheet" href="../static/assets/css/my.css"
th:href="@{/assets/css/my.css}" />
时,它会使用index.html
检测CSS,当您通过服务器启动它时,即运行应用程序并在浏览器中打开它,那么Thymeleaf会信奉href
。所以它适用于两种情况。