2

我正在尝试在 Intellij IDEA 14.1.3 中将 WebJars 与 Play Framework 2.4.0 一起使用。

我有 SBT 1.7.0 插件和 Scala 1.5.2 插件(带有项目 Scala 版本 2.11.6)。

当我从终端($ activator run$ sbt run)运行我的应用程序时,我的应用程序运行良好,但是在我的模板(参见下文)上的 #at() 方法上,我的模板上有编译错误并且没有自动完成功能@routes.WebJarAssets.at(..) (而不是在@routes.Assets.at):

在此处输入图像描述

有我的路由配置文件:

# Map static resources from the /public folder to the /assets URL path
GET    /assets/*file     controllers.Assets.at(path="/public", file)

# WebJars integration into Play Framework : http://www.webjars.org/documentation
GET    /webjars/*file    controllers.WebJarAssets.at(file)

有关信息,我尝试在删除我的 .idea 文件夹后从 SBT 内置构建器重新导入项目,但这没有用。

有什么解决办法吗?

4

1 回答 1

0

据我所知,IDEA 14.1.3 Scala/Play 插件不支持从 Play 2.4 开始的默认 routesGenerator 的 InjectedRoutesGenerator。

webjars-play 的 2.4.0-1 WebJarAssets 控制器实现了这种注入机制。

在 JetBrains 上查看可能具有相同原因的类似错误报告。

在修复错误之前,您可以使用常规资产控制器。为方便起见,WebJars 会自动提取到相对于您的公共资产的 lib 文件夹中(请参阅play 的webjar 资产文档)

<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("lib/bootstrap/css/bootstrap-theme.css")">

最终,另一种解决方法是通过停用 InjectedRoutesGenerator build.sbt(未经测试)来回退到静态路由器。然而,这将需要对您的应用程序进行相当多的重构以再次在控制器中实现静态方法。

于 2015-06-10T08:47:04.203 回答