Thymeleaf和Spring Boot,如何构建assets文件夹以在运行时和设计时查看html

时间:2017-11-10 00:14:39

标签: java spring-boot thymeleaf

我有一个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模板文件夹关系来实现这个目标?先谢谢了!

1 个答案:

答案 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。所以它适用于两种情况。