revel框架支持通过prepend指令配置全局url前缀、用注释和空行实现模块化路由分组、以及通过host指令按子域名分流路由。

在Revel框架中为不同业务模块设置独立的URL前缀,能避免路由冲突、提升代码可读性,并为后续权限控制和中间件注入打下基础。
配置全局URL前缀
打开项目根目录下的 conf/routes 文件,在所有路由定义之前添加一行 PREPEND 指令:
PREPEND /api/v1
这行指令会让其后所有未显式指定前缀的 GET/POST/WS 等路由自动拼接 /api/v1 前缀。例如原本的 GET /users 会实际匹配 /api/v1/users。
注意:PREPEND 是全局生效的,且只影响其下方的路由条目;上方已定义的路由不受影响。
按模块划分路由组
Revel 不提供类似 Gin 的 Group() 方法,但可通过路径命名约定 + 路由文件拆分实现逻辑分组:
方法一:在 conf/routes 中用空行和注释分隔模块
# 用户模块
GET /api/v1/users App.Users.Index
POST /api/v1/users App.Users.Create
# 订单模块
GET /api/v1/orders App.Orders.List
GET /api/v1/orders/:id App.Orders.Show
这一步操作起来很简单,直接把同类路由写在一起并加注释即可,Revel 路由加载器会按顺序逐行解析。
为子域名单独配置路由集
当需要 admin.example.com 和 api.example.com 共存时,Revel 支持基于 Host 头的路由分流:
第一步:在 conf/app.conf 中启用 Host 匹配
router.host_based_routing = true
第二步:修改 conf/routes,在路由前添加 Host 条件
HOST admin.example.com
GET /dashboard Admin.Dashboard.Index
GET /settings Admin.Settings.Edit
HOST api.example.com
GET /status Api.Status.Health
【HOST 指令必须紧邻其作用的路由,且不能跨空行】
第三步:启动服务时确保请求头 Host 字段与配置一致,否则匹配失败将返回 404。











