带有前缀的拆分路由在 Play 2.7 中不起作用(在 2.6 中起作用)
Splitting routes with prefix not working in Play 2.7 (worked in 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,所以我不确定应该更改什么?
我认为问题是因为 Router withPrefix 发生了变化,但我不确定如何根据我需要更新的内容来解释它。还有其他人在使用 Play 2.7 时遇到过这个问题吗?
我刚刚又玩了一次,第一次是几周前 - 我没有遇到同样的错误。如果我重新开始忘记SBT unlock; reload; lock
循环,我可以重现,这可能是我之前犯的错误。这给我留下了与 Play 2.7 插件一起安装的 Play 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,所以我不确定应该更改什么?
我认为问题是因为 Router withPrefix 发生了变化,但我不确定如何根据我需要更新的内容来解释它。还有其他人在使用 Play 2.7 时遇到过这个问题吗?
我刚刚又玩了一次,第一次是几周前 - 我没有遇到同样的错误。如果我重新开始忘记SBT unlock; reload; lock
循环,我可以重现,这可能是我之前犯的错误。这给我留下了与 Play 2.7 插件一起安装的 Play 2.6 库。