W mojej sztuce szablonu HTML wewnątrz mojego modułu custom
, mam następujący wiersz kodu:Automatycznie wstrzykuj WebJarAssets w szablonie HTML Play 2.5?
<script type="text/javascript" src="@controllers.core.routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))"></script>
ten odwołuje się do klasy WebJarAssets
w module core
, który wygląda tak:
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)
Zwróć uwagę że dodałem również następujący wiersz w build.sbt
w module custom
:
"org.webjars" %% "webjars-play" % "2.5.0",
Po uruchomieniu aplikacji pojawia się następujący błąd:
[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] ^
Sądząc realizacji WebJarAssets We wcześniejszych wersjach nie było potrzeby, aby wdrożyć i wstrzyknąć własny kontroler do tego (na przykład zobaczyć tutorial).
Co robię źle? Czy potrzebuję nawet klasy WebJarAssets
(ponieważ potrzebuję zasobów słoika internetowego w wielu modułach, dodałem to na razie w module core
). Ponadto, dlaczego muszę ręcznie wstrzyknąć go w szablon i dlaczego nie jest automatycznie rozwiązany?
W przypadku wątpliwości co ręcznie wprowadzić środki dla mnie:
@(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>
Dziękuję za wyjaśnienia. Jednak myślę, że to nowe podejście wprowadziło [kwestie zależności cyklicznej] (http://stackoverflow.com/questions/37057137/how-to-prevent-circular-dependencies-when-using-webjarassets- play-2-5). –
Nie podoba mi się to podejście. To jest degradacja. –
@KhwarezmShah Czy możesz zgłosić problem na https://github.com/webjars/webjars-play z dodatkowymi informacjami? –