scala - 使用前缀拆分路由在 Play 2.7 中不起作用(在 2.6 中起作用)
问题描述
我们的项目使用多个路由文件。
conf/routes 文件包含以下内容:
/some/stuff
...
-> /api/admin admin.Routes
-> /api/user user.Routes
然后我们有 conf/admin.routes 和 conf/user.routes 文件,其中包含前缀 API 路由。
我正在尝试从 Play 2.6(此设置运行良好,以及早期版本)升级到 Play 2.7。编译时出现错误:
[error] /usr/src/backend/conf/admin.routes:401: value concatPrefix is not a member of object play.api.routing.Router
[error] GET /myAdminRoute @com.my.some.controllers.MyControl.list()
[error] /usr/src/backend/conf/user.routes:140: value concatPrefix is not a member of object play.api.routing.Router
[error] GET /myUserRoute @com.my.other.controllers.MyControl.list()
查看 2.7 的 Play 迁移:
- 我没有使用 StaticRoutesGenerator https://www.playframework.com/documentation/2.7.x/Migration27#StaticRoutesGenerator-removed
- 看起来很可疑:https : //www.playframework.com/documentation/2.7.x/Migration27#StaticRoutesGenerator-removed Router#withPrefix 应始终添加前缀。但我只是使用 Play conf/routes,所以我不确定我应该改变什么?
我认为问题是因为路由器的前缀更改,但我不确定如何根据我需要更新的内容来解释它。Play 2.7还有其他人遇到过这个问题吗?
解决方案
我刚刚玩过这个游戏,第一次是几周前 - 我没有遇到同样的错误。如果我重新开始并忘记 SBTunlock; reload; lock
循环,我可以重现,这可能是我之前犯的错误。这给我留下了与 Play 2.7 插件一起安装的 Play 2.6 库。