Play Framework Bootstrap Webjar 集成不工作

Play Framework Bootstrap Webjar integration not working

您好,我尝试将 play framework (current) 2.3.7 与 Bootstrap 3:

集成

sbt 文件:

libraryDependencies ++= Seq(
  "org.webjars" %% "webjars-play" % "2.3.0-2",
  "org.webjars" % "bootstrap" % "3.1.1-2"
)

html

<body>
    

            <!-- Latest compiled and minified CSS -->
  
        <link rel='stylesheet' href='@routes.Assets.at(WebJarAssets.locate("css/bootstrap.min.css"))'>

      

        <ul class="nav nav-tabs">
            <li role="presentation" class="active"><a href="#">Home</a></li>
            <li role="presentation"><a href="#">Profile</a></li>
            <li role="presentation"><a href="#">Messages</a></li>
        </ul>

只抛出这个错误: [MultipleMatchesException:找到 css/bootstrap.min.css 的多个匹配项。请提供更具体的路径,例如包含版本号。]

一次不同的尝试(应该适用于早期的 2.3 版本): http://www.webjars.org/documentation

<link rel='stylesheet' href='@routes.WebJarAssets.at(WebJarAssets.locate("css/bootstrap.min.css"))'>
<script type='text/javascript' src='@routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))'></script>

但是 Play 只告诉我 web jar assets controller 不可用

value WebJarAssets is not a member of object controllers.routes
谁能告诉我哪里出了问题?

您的路由文件中是否有 WebJarAssets 控制器的条目?像这样:

GET     /webjars/*file                    controllers.WebJarAssets.at(file)

您只需使用 Assets 控制器访问 WebJars,Play 会自动将它们提取到 target/lib 文件夹中。你可以通过@routes.Assets.at(“lib/bootstrap/css/bootstrap.css”).

来引用它们

在我的例子中,我得到了错误:

value WebJarAssets is not a member of object controllers.routes

尽管我添加了

GET     /webjars/*file     controllers.WebJarAssets.at(file)

到路由文件。

sbt clean 没有帮助。我以 git clean -f -d -x 结束,它删除了 git 未跟踪的所有内容。然后就编译好了。