有时,似乎无缘无故,我在其中一个视图模板(编译后)中收到“未找到:值路由”编译错误。这发生在 Eclipse 或 IDEA 中。
谷歌搜索发现了这一点,但无法在 play 2.10 中添加 mainLang = SCALA(我使用的是 2.1.2 版)。
有时,清理项目/重新使项目黯然失色/似乎可行,但还有其他永久性解决方案/解决方法吗?
谢谢
有时,似乎无缘无故,我在其中一个视图模板(编译后)中收到“未找到:值路由”编译错误。这发生在 Eclipse 或 IDEA 中。
谷歌搜索发现了这一点,但无法在 play 2.10 中添加 mainLang = SCALA(我使用的是 2.1.2 版)。
有时,清理项目/重新使项目黯然失色/似乎可行,但还有其他永久性解决方案/解决方法吗?
谢谢
由于似乎没有答案,我将至少描述我的解决方法:而不是使用
<link href=@routes.Assets.at("stylesheets/style.css") rel="stylesheet" type="text/css" />
在我的模板 HTML 中,我正在使用
<link href="assets/stylesheets/styles.css") rel="stylesheet" type="text/css" />
由于我没有调用 routes.Assets.at,所以没有找到价值路由没有问题。(但是,我猜当我需要更复杂的模板时,这种解决方法很容易崩溃)
如果路由文件不存在或不包含路由,则可能会发生这种情况。
我有这个定义资产控制器的工作
object Assets extends controllers.AssetsBuilder
并且在routes
conf中也有资产路线:
\#Map static resources from the /public folder to the /assets URL path
GET /assets/*file premise.internet_org.controllers.Assets.at(path="/public", file)
sbt compile
然后 IntelliJ 加载编译的输出,一切都对我有用。
当routes
文件中没有资产的路由配置时,会发生这种情况。
您必须将此添加到您的routes
文件中:
GET /assets/*file controllers.Assets.at(path="/public", file)
我在尝试构建 Sihouette 示例项目https://github.com/mohiva/play-silhouette-seed/tree/master时遇到了这样的错误。我评论或替换了导致错误的代码。例如:
def view = silhouette.UnsecuredAction.async { implicit request: Request[AnyContent] =>
//Future.successful(Ok(views.html.signUp(SignUpForm.form)))
Future.successful(Ok)
}
之后构建成功 - 在 target/scala-2.X/ 中创建 Twirl 和 Routes 目录。我运行应用程序并恢复原始代码。
def view = silhouette.UnsecuredAction.async { implicit request: Request[AnyContent] =>
Future.successful(Ok(views.html.signUp(SignUpForm.form)))
}
我已经添加.disablePlugins(PlayLayoutPlugin)
到我的built.sbt“根”定义中,而没有更改目录结构以匹配(请参阅下面解释这一点的链接)。它从“播放应用程序布局”切换到“默认 sbt 布局”。路由和 application.conf 现在应该位于磁盘上的不同位置。我遇到了“未找到:值路由”和“在类路径上找不到资源:application.conf”错误。我从另一个项目中复制了这个 disablePlugins 行。
https://www.playframework.com/documentation/2.8.x/Anatomy#Default-sbt-layout
我有同样的问题,当我删除生成的文件夹(目标)并重新启动我的应用程序时解决了
在 Intellij 在 IDE 测试期间停止给我这些错误之前,我必须去终端并输入“激活器测试”。