我正在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内置构建器重新导入项目,但这不起作用。
任何解决方案?
答案 0 :(得分:0)
据我所知,IDEA 14.1.3 Scala / Play插件不支持InjectedRoutesGenerator,它是从Play 2.4开始的默认routesGenerator。
webjars-play的2.4.0-1 WebJarAssets控制器实现了这种注入机制。
在JetBrains看到一个类似的bug report可能有相同的原因。
您可以使用常规的Assets控制器,直到修复错误。为方便起见,WebJars会自动提取到相对于公共资产的lib文件夹中(有关webjar资产,请参阅play's documentation)
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("lib/bootstrap/css/bootstrap-theme.css")">
最终,另一种解决方法是通过停用build.sbt
中的InjectedRoutesGenerator(未经测试)来回退到静态路由器。
但是,这需要对应用程序进行一些重构,以便再次在控制器中实现静态方法。