In my HTML template to play inside my custom module, I have the following line of code:
<script type="text/javascript" src="@controllers.core.routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))"></script>
This refers to the WebJarAssets class in the core module, which looks like this:
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)
Note that I also included the following line in build.sbt in the custom module:
"org.webjars" %% "webjars-play" % "2.5.0",
When starting the application, the following error appears:
[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] ^
Judging by the implementation of WebJarAssets in earlier versions, there is no need to implement and introduce your own controller for this (for example, see this tutorial ).
What am I doing wrong? I even need a WebJarAssets class for this (since I need web banner resources in many modules, I added this now in the core module). Also, why do I need to manually enter it into the template and why is it not allowed automatically?
In case you are wondering, what does it enter for me manually:
@(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>