Play Framework 2.4 @routes.WebJarAssets.at IntelliJ IDEA 14.1.3 编译错误
Play Framework 2.4 @routes.WebJarAssets.at Compilation Error in IntelliJ IDEA 14.1.3
我正在尝试在 Intellij IDEA 14.1.3 中将 WebJars 与 Play Framework 2.4.0 结合使用。
我有 SBT 1.7.0 插件和 Scala 1.5.2 插件(项目 Scala 版本 2.11.6)。
当我从终端 运行 我的应用程序运行良好时($ activator 运行 或 $ sbt 运行) 但是我的模板上的 IntelliJ IDEA 中有编译错误并且没有自动完成(参见下面),@routes.WebJarAssets.at(..) 的 #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 内置构建器重新导入项目,但这没有用。
有什么解决办法吗?
据我所知,IDEA 14.1.3 Scala/Play 插件不支持从 Play 2.4 开始的默认路由生成器 InjectedRoutesGenerator。
webjars-play 的 2.4.0-1 WebJarAssets 控制器实现了这种注入机制。
在 JetBrains 看到类似的 bug report 可能有相同的原因。
在错误修复之前,您可以改用常规资产控制器。为方便起见,WebJar 会自动提取到与您的 public 资产相关的 lib 文件夹中(有关 webjar 资产,请参阅 play's documentation)
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("lib/bootstrap/css/bootstrap-theme.css")">
最终,另一种解决方法是通过在 build.sbt
(未测试)中停用 InjectedRoutesGenerator 来回退到静态路由器。
然而,这需要对您的应用程序进行相当多的重构才能再次在控制器中实现静态方法。
我正在尝试在 Intellij IDEA 14.1.3 中将 WebJars 与 Play Framework 2.4.0 结合使用。
我有 SBT 1.7.0 插件和 Scala 1.5.2 插件(项目 Scala 版本 2.11.6)。
当我从终端 运行 我的应用程序运行良好时($ activator 运行 或 $ sbt 运行) 但是我的模板上的 IntelliJ IDEA 中有编译错误并且没有自动完成(参见下面),@routes.WebJarAssets.at(..) 的 #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 内置构建器重新导入项目,但这没有用。
有什么解决办法吗?
据我所知,IDEA 14.1.3 Scala/Play 插件不支持从 Play 2.4 开始的默认路由生成器 InjectedRoutesGenerator。
webjars-play 的 2.4.0-1 WebJarAssets 控制器实现了这种注入机制。
在 JetBrains 看到类似的 bug report 可能有相同的原因。
在错误修复之前,您可以改用常规资产控制器。为方便起见,WebJar 会自动提取到与您的 public 资产相关的 lib 文件夹中(有关 webjar 资产,请参阅 play's documentation)
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("lib/bootstrap/css/bootstrap-theme.css")">
最终,另一种解决方法是通过在 build.sbt
(未测试)中停用 InjectedRoutesGenerator 来回退到静态路由器。
然而,这需要对您的应用程序进行相当多的重构才能再次在控制器中实现静态方法。