8
/{hash}.json
/{hash}
/{hash}
的优先级高于/{hash}.json
,这个顺序有点问题。
现在只能改变字段名称让/{hash}.json
排前面,不过这样在控制器中就需要多做一次判断。
建议加入正则,
beego 的:hash([\w]+)
/{hash}.json
/{hash}
/{hash}
的优先级高于/{hash}.json
,这个顺序有点问题。
现在只能改变字段名称让/{hash}.json
排前面,不过这样在控制器中就需要多做一次判断。
建议加入正则,
beego 的:hash([\w]+)
@zuozhehao GF的路由采用的是深度优先匹配,越是精准的路由规则优先级越高,因此/{hash}.json
的优先级高于/{hash}
。复杂的路由,特别是包含正则表达式的路由,不仅效率低并且长远来看是不便于维护的,因此GF不提供复杂的正则匹配路由。现有的路由规则已经可以满足绝大多数的场景需求。
@gqcn 那产生bug 了,当前版本/{hash}
优先级高于/{hash}.json
。
@zuozhehao 如果你访问/xxx.json
将会匹配/{hash}.json
这个规则;如果你访问/xxx
将会匹配/{hash}
这个规则,有什么问题吗?
@gqcn 那也就是 /{hash} 优先级也高于 /{hash}.{type} ?
你说的/{hash}
优先级比/{hash}.json
高的代码示例有吗,贴上来我看看呢?
嗯,我测试了下,/{hash}.json
优先级比/{hash}
高。
不过/{hash}
比/{hash}.{type}
优先级高。
@zuozhehao 确实这个细节没处理得特别好,我这里改进了一下,提交到了master
分支,你可以试试,如果仍有建议非常欢迎继续提。