【发布时间】:2016-08-30 19:40:44
【问题描述】:
在 custom 模块内的 Play HTML 模板中,我有以下代码行:
<script type="text/javascript" src="@controllers.core.routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))"></script>
这引用了core 模块中的WebJarAssets 类,如下所示:
package controllers.core
import javax.inject._
import play.api.http.HttpErrorHandler
import play.api.{Environment, Configuration}
class WebJarAssets @Inject()(errorHandler: HttpErrorHandler, configuration: Configuration, environment: Environment) extends controllers.WebJarAssets(errorHandler, configuration, environment)
请注意,我还在custom 模块的build.sbt 中包含以下行:
"org.webjars" %% "webjars-play" % "2.5.0",
启动应用程序时,我收到以下错误:
[error] /Users/john/DemoProject/modules/custom/app/views/custom/templates/main.scala.html:36: not found: value WebJarAssets
[error] <script type="text/javascript" src="@controllers.core.routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))"></script>
[error] ^
从早期版本中 WebJarAssets 的实现来看,没有必要为此实现和注入自己的控制器(例如,参见 tutorial)。
我做错了什么?我什至需要一个WebJarAssets 类(因为我需要许多模块中的web jar 资产,我现在在core 模块中添加了这个)。还有,为什么要手动注入到模板中,为什么不能自动解析?
如果您想知道手动注入对我意味着什么:
@(title: String, webJarAssets: WebJarAssets)(content: Html)(implicit messages:Messages)
<script type="text/javascript" src="@controllers.core.routes.WebJarAssets.at(webJarAssets.locate("jquery.min.js"))"></script>
【问题讨论】:
标签: scala playframework sbt webjars playframework-2.5