我正在尝试根据此处的文档使用Play webjars帮助程序来加载Bootstrap:http://www.webjars.org/documentation
然而,在请求页面时,我遇到以下异常:
[IllegalArgumentException: css/bootstrap.min.css could not be found. Make sure you've added the corresponding WebJar and please check for typos.]
build.sbt
libraryDependencies ++= Seq(
...
"org.webjars" %% "webjars-play" % "2.4.0-1",
"org.webjars" % "bootstrap" % "3.3.4",
...
)
路由
#WebJars wrapper
GET /webjars/*file controllers.WebJarAssets.at(file)
HTML
...
<link rel='stylesheet' href='@routes.WebJarAssets.at(WebJarAssets.locate("css/bootstrap.min.css"))'>
...
这个相同的html文件也使用webjars包装器来定位require.min.js,它可以正常工作。
<script data-main="@routes.Assets.versioned("javascripts/main.js")"
src="@routes.WebJarAssets.at(WebJarAssets.locate("require.min.js"))"></script>
如果我改为使用播放反向路由加载Bootstrap,那么它可以工作:
<link rel='stylesheet' href='@routes.Assets.versioned("lib/bootstrap/css/bootstrap.min.css")'>
为什么webjars帮助器无法加载Bootstrap,但是能够加载require.min.js?
现在最简单的解决方案似乎是完全放弃了webjars包装器,因为在加载资源时它似乎并不能使它更容易或更易读。