1

我正在使用 spring mvc 和 spring boot 来开发一个 web 应用程序,我有一个关于 webjars 的问题。要在 thymeleaf 中添加 webjar 的路径,我们例如执行以下操作:th:href="@{/webjars/bootstrap/...}"

现在当我通过tomcat解析后查看页面源时,链接标签中的实际href属性为:href="/webjars/bootstrap/..."

但是在 tomcat 中查看 web 应用程序的目录结构,没有这样的文件(在 3.3.6 内部找不到 bootstrap.min.js ......直到我们到达 webjars 文件夹)......而不是文件位于 lib 文件夹中的 jar 文件中,它与目录结构中的 html 文件相距甚远.. 那么它是如何解决的呢?href 属性不应该根据 html 文件的当前目录位置来引用文件吗?

4

1 回答 1

5

WebJars 利用 Tomcat 中的自动静态资源处理。使用 Tomcat / Servlet 3,目录中 CLASSPATH 上的META-INF/resources文件会自动作为 servlet 上下文下的静态资源公开。因此,如果您在 CLASSPATH 上有一个 jar,其中包含META-INF/resources/foo.txt并且您的 webapp 正在根上下文中运行,那么该文件将自动在以下位置可用:http://localhost:8080/foo.txt

由于 Bootstrap WebJar 有一个类似的文件:
META-INF/resources/webjars/bootstrap/3.3.6/js/bootstrap.min.js
它位于:
http://localhost:8080/webjars/bootstrap/3.3.6/js/bootstrap.min.js

于 2016-02-18T17:55:14.063 回答