2

我試圖在Intellij IDEA 14.1.3中使用帶有Play Framework 2.4.0的WebJars。Play Framework 2.4 @ routes.WebJarAssets.at IntelliJ IDEA編譯錯誤14.1.3

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

我的應用效果很好,當我從終端運行它($激活運行$ SBT運行),但我有編譯錯誤,並在我的模板的IntelliJ IDEA沒有自動完成(參見下文),在@ routes.WebJarAssets.at的#at()方法(..)(而不是在@ routes.Assets.at):

enter image description here

還有就是我的路線的conf文件:

# 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

究竟是什麼錯誤? – biesior

+0

@biesior它是_「無法解析符號」_ –

回答

0

據我所見,IDEA 14.1.3 Scala/Play插件不支持從播放2.4開始的默認routesGenerator的InjectedRoutesGenerator。

webjars-play's 2.4.0-1 WebJarAssets控制器實現這個注入機制。

在JetBrains看到類似的bug report可能有相同的原因。

您可以使用常規的Assets控制器,直到bug修復。 WebJars會自動提取到LIB相對於你的公共資產爲方便文件夾(見play's documentation爲webjar資產)

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

最終另一個解決辦法是通過build.sbt(未經測試)停用InjectedRoutesGenerator回落到靜態路由器。 然而,這會需要你的應用程序的一些重構來再次實現控制器中的靜態方法。

+0

我已經使用了依賴注入並且它可以工作。我可以做到這一點,因爲我在項目的開始。謝謝您的回答 :-) –