nuxt.js 让路由识别双斜杠

新手上路,请多包涵

需求是这样的:

http://localhost/user/login 是可以正常访问的

http://localohost/user//login 是不能正常访问的

就是希望不管是在哪个斜杠后面再加一个斜杠都是可以正常访问。

目前我的想法是:
在nuxt的serverMiddleware作拦截,然后通过res.writeHead()进行跳转

但是这种做法,会有一个跳转的过程。跳转后链接就不再有双斜杠,但是我看了其他的网站,它们的链接还是带着双斜杠的。

想问一下,这个是要怎么处理的?

阅读 3.5k
2 个回答

这个主要看服务器端怎么处理请求的path部分,可以预处理一下规范为正确的格式。

大致是这样一个思路:

  1. 对请求的路径根据需要进行标准化处理,比如这里 把所有连续多个/替换为1个/
  2. 根据规范化后的路径去路由响应处理
  3. 返回处理结果

因为 请求路径到处理 是在服务器内部完成的,也没有发生跳转,所以在客户端其实和正常请求没有区别,会获得合适的反馈信息。

你确定你看的别的网站也是 nuxt.js 直接对外提供 HTTP 服务的么……

似乎 nuxt.js 本身没提供这样的路由配置方式。

如果你前面套了一层 nginx 的话,nginx 有一个参数 merge_slashes 是控制这个特性的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题