如何使用在 Play 的父模块中定义的路由?
How to use routes defined in a parent module in Play?
我有一个模块,它有一个控制器和几个模板。现在,我想引用一个位于父模块中的控制器。我这样试过:
case Some(user) => Redirect(routes.Application.index)
不幸的是,我收到以下错误:
[error] case Some(user) => Redirect(routes.Application.index)
[error] ^
我也这样试过:
case Some(user) => Redirect(controllers.Application.index)
但我仍然得到同样的错误。当我尝试引用作为模块一部分的控制器时,也会发生此错误。
我这样试过:controllers.module.Controller.action
。
此外,我在引用实际上位于父模块中的模块中的视图时遇到了同样的问题。
例如,我想在模块中引用模板main
:
@views.html.main
它抛出一个错误。
您需要查看 "Aggregating reverse routers" - https://www.playframework.com/documentation/2.5.x/AggregatingReverseRouters
例如,我有子模块 "handlebars" 并且想在该子模块中使用来自主项目的路由。所以我将下一个字符串添加到 `build.sbt':
lazy val handlebars = (project in file("modules/handlebars"))
.enablePlugins(PlayJava)
.settings(
aggregateReverseRoutes := Seq(root)
)
lazy val root: Project = (project in file("."))
.enablePlugins(PlayJava)
.aggregate(handlebars)
.dependsOn(handlebars)
aggregateReverseRoutes:= Seq(root)
说SBT先从root
工程编译路由,编译handlebars
工程时使用。由于依赖项中的递归,您还需要为 root
项目使用隐式类型,例如 root: Project
。
问题全文:https://github.com/playframework/playframework/issues/1390
我有一个模块,它有一个控制器和几个模板。现在,我想引用一个位于父模块中的控制器。我这样试过:
case Some(user) => Redirect(routes.Application.index)
不幸的是,我收到以下错误:
[error] case Some(user) => Redirect(routes.Application.index)
[error] ^
我也这样试过:
case Some(user) => Redirect(controllers.Application.index)
但我仍然得到同样的错误。当我尝试引用作为模块一部分的控制器时,也会发生此错误。
我这样试过:controllers.module.Controller.action
。
此外,我在引用实际上位于父模块中的模块中的视图时遇到了同样的问题。
例如,我想在模块中引用模板main
:
@views.html.main
它抛出一个错误。
您需要查看 "Aggregating reverse routers" - https://www.playframework.com/documentation/2.5.x/AggregatingReverseRouters
例如,我有子模块 "handlebars" 并且想在该子模块中使用来自主项目的路由。所以我将下一个字符串添加到 `build.sbt':
lazy val handlebars = (project in file("modules/handlebars"))
.enablePlugins(PlayJava)
.settings(
aggregateReverseRoutes := Seq(root)
)
lazy val root: Project = (project in file("."))
.enablePlugins(PlayJava)
.aggregate(handlebars)
.dependsOn(handlebars)
aggregateReverseRoutes:= Seq(root)
说SBT先从root
工程编译路由,编译handlebars
工程时使用。由于依赖项中的递归,您还需要为 root
项目使用隐式类型,例如 root: Project
。
问题全文:https://github.com/playframework/playframework/issues/1390