子项目路由 Play 2.4

subprojects routing Play 2.4

我正在尝试迁移一个使用 SBTSubProjects 播放 2.4 的播放 2.3 (java) 项目,现在我遇到了一些路由问题。

sample project 显示我的问题

该项目使用三个子项目(admin、website 和common):

build.sbt:
lazy val root = (project in file(".")).enablePlugins(PlayJava).dependsOn(admin, website).aggregate(website, admin)
lazy val common = (project in file("modules/common")).enablePlugins(PlayJava)
lazy val admin = (project in file("modules/admin")).enablePlugins(PlayJava).dependsOn(common)
lazy val website = (project in file("modules/website")).enablePlugins(PlayJava).dependsOn(common)
routesGenerator := InjectedRoutesGenerator

conf/routes:
-> /admin admin.Routes
-> /website website.Routes

在 2.3 中,可以使用 "root"-project 以 "activator run" 启动应用程序,然后通过调用 /admin 或 /website 它使用相应的子项目-routes。对 2.4 做同样的事情,我只得到了资产路径错误的管理路由。使用 "project" 将活动项目切换到管理员或网站时,项目路由按预期工作。

如何获得与以前相同的行为? 谢谢

我在从 2.3 升级到 2.4 时遇到了完全相同的问题,并已修复。关键是为根项目

设置一个默认的application.conf

在根项目的build.sbt中,添加这一行以确保它始终使用根配置

Keys.javaOptions+="-Dconfig.file=conf/application.conf"

这也可能是您遇到问题的原因,因为如果没有设置,Play 可能会选择 application.conf 中的任何一个,如果它从子项目中选择一个,在您的情况下,似乎是管理项目,只有管理路线。