Play Framework Bootstrap Webjar集成无法正常工作

时间:2015-01-18 23:22:33

标签: twitter-bootstrap playframework playframework-2.3

您好我尝试将Play框架(当前)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只告诉我网络jar资产控制器不可用

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

就我而言,我收到了错误:

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未跟踪的所有内容。然后编译。

答案 2 :(得分:1)

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