前端跳转谁来做?

2020-01-20 14:54:36 +08:00
 pmispig

前端要求用户访问 http://abc.com/xxoo#happy 跳转到 http://abc.com/xxoo/xxoo/#happy
我说在 js 里判断就行,
现在前端非要我在 nginx 上 302

5655 次点击
所在节点    程序员
45 条回复
geekdocs
2020-01-20 17:09:14 +08:00
nginx rewrite 模块
geekdocs
2020-01-20 17:10:38 +08:00
如果是分离且用了前端路由,可以让前端跳。
wee911
2020-01-20 17:11:04 +08:00
看具体情况,http://abc.com/xxoo#happy 这个错误链接说导致的谁处理, 前端自己不可能产生一个不存在的路由,大概率历史原因或者后端造成的。
chairuosen
2020-01-20 17:11:56 +08:00
如果前端部署在根目录,并且是业务跳转比如 /跳 /login,前端做。
如果前端部署在二级子目录或者非业务跳转,比如活动短网址,ngxin 做。
jkmf
2020-01-20 17:14:01 +08:00
后端咋判断?#后的内容后端是拿不到的
shintendo
2020-01-20 17:14:27 +08:00
为什么都说是 spa 内跳转……这不改的是 hash 前面的路径吗
zhgg0
2020-01-20 17:14:55 +08:00
如果是因为历史遗留,就这一种情况,我个人觉得配 ngnix 302 比较合理。
sm0king
2020-01-20 17:17:10 +08:00
那个~~ 不担心白屏怎么做都可以。
DL9412
2020-01-20 17:17:49 +08:00
这个又有 path 又有 hash 的,总不能是用户自己输的吧,直接去把跳过来的地方改掉不就好了
Idealyouth
2020-01-20 17:19:24 +08:00
nginx 上做啊
Idealyouth
2020-01-20 17:19:45 +08:00
@q8164305 是很简单,但是没必要
pmispig
2020-01-20 17:32:34 +08:00
@DL9412 我觉得你这种才是真办法,奈何无法沟通这个啊。。。不过只能按他们说的来,他们说啥就是啥
Sapp
2020-01-20 18:01:17 +08:00
为什么要跳转? 直接通过路由指向同一个组件不就行了么?
Zach369
2020-01-20 18:13:09 +08:00
我现在的态度是: 能自己做的就自己做....懒得吵
imswing
2020-01-20 18:45:08 +08:00
你们说的前端 redirect 是啥。。。。
maple3142
2020-01-20 19:50:42 +08:00
https://stackoverflow.com/a/5915350/6885801
在新的瀏覽器上面的 302 redirect 是會自動保留 hash 的
Torpedo
2020-01-20 19:53:44 +08:00
应该服务端做。楼上说 hash 的,这个场景根本不影响。
现在是把一个 url 映射到另一个,必然是服务端做。
要是前端做了,那会先访问一个 html,然后执行 js,才会跳转。
服务端做,第一时间就能跳过去
rioshikelong121
2020-01-20 20:21:38 +08:00
我感觉不应该在前端做。这种规则尽量不要写在代码里面,不然变更的话还得重新发布,放在 nginx 上配置我感觉更灵活一点。
KuroNekoFan
2020-01-21 07:14:22 +08:00
前端做就前端做吧,不碍事
KuroNekoFan
2020-01-21 07:20:05 +08:00
之前看过一条微博,说新浪微博的某个跳转之前是 302redirect,后来改成页面 location.href 了
或许可以这么说:由前端来实现是更实用主义的做法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/639446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX