我正在使用spring mvc和spring boot开发一个Web应用程序,我对webjars有疑问。要在百里香中添加webjar的路径,我们会执行以下操作:th:href="@{/webjars/bootstrap/...}"
现在,当我通过tomcat解析后查看页面源时,链接标记中的实际href属性为:href="/webjars/bootstrap/..."
但是看看tomcat中的web应用程序的目录结构,没有这样的文件(在3.3.6里面找不到bootstrap.min.js ......直到我们到达webjars文件夹)相反,文件位于lib文件夹中的jar文件中,该文件夹远离目录结构中的html文件..那么它是如何解决的呢?是不是应该根据html文件的当前目录位置引用文件的href属性?
答案 0 :(得分:4)
WebJars利用Tomcat中的自动静态资源处理。使用Tomcat / Servlet 3,META-INF/resources
目录中CLASSPATH上的文件将自动公开为servlet上下文下的静态资源。因此,如果CLASSPATH上有一个包含META-INF/resources/foo.txt
的jar并且您的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