go+gin:解决静态资源路由与后端api路由冲突
问题:
在使用go和gin框架时,发现静态资源路由和后端api路由存在冲突,导致访问api接口失败。
出错代码:
r.static("/", "./assets") api := r.group("/api/v1") { api.get("user", test) }
错误信息:
panic: '/api/v1/:user' in new path '/api/v1/:user' conflicts with existing wildcard '/<em>filepath' in existing prefix '/</em>filepath'
原因:
静态资源的路由"/"与api路由的"/api/v1/"冲突,因为前缀相同。gin路由会优先匹配静态资源路由,导致api路由无法访问。
解决方案:
为静态资源路由添加一个前缀,使其与api路由区分开来。例如:
r.Static("/files", "./assets")
这样,访问"/files/image.png"将命中静态资源路由,而访问"/api/v1/user"将继续命中api路由。
注意:
以上就是Go+Gin:如何解决静态资源路由与后端API路由冲突?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号