前端要求用户访问 http://abc.com/xxoo#happy 跳转到 http://abc.com/xxoo/xxoo/#happy
我说在 js 里判断就行,
现在前端非要我在 nginx 上 302
前端要求用户访问 http://abc.com/xxoo#happy 跳转到 http://abc.com/xxoo/xxoo/#happy
我说在 js 里判断就行,
现在前端非要我在 nginx 上 302
|
drydiyJan 20, 2020
1
这前端直接处理就可以了。
|
|
3
个人习惯在后端(服务端)做,因为在前端做 需要加载页面后才执行,用户体验不好。
另外从 SEO 角度来说也应该服务端做(如果原地址不使用了) |
|
madewocaoJan 20, 2020 via Android
4
看你们关系好不好,工作量大不大
|
|
BrbiwsFtd9zDGZqBJan 20, 2020
5
看谁嗓门大
|
|
retanojJan 20, 2020
6
这种打一架就行
|
|
mxT52CRuqR6o5Jan 20, 2020 via Android
7
如果是 js 用 history api 做跳转,性能和 nginx302 应该差不多
|
|
8
@GDC 如果考虑到体验就不应该做这个跳转,因为这个跳转是 vue 同一个页面,指向同一个 index.html 和同一个视图,好像是为了解决 ie 的一个刷新页面丢失 #后面的参数的问题...
我也不知道这种骚操作哪里来的 |
|
DelayNoMoreJan 20, 2020
9
前端 redirect 不就可以了吗?
|
|
keepeyeJan 20, 2020
10
单页的话前端做
|
|
q8164305Jan 20, 2020 via Android
11
单页前端做,很简单,就一个 redict 配置就行了啊
|
|
J735KILnHi7q49cvJan 20, 2020
12
结合楼上
SPA:前端合理, MPA:前端做会在前端多增加一次网络请求,用户体验不好 |
|
heiheidewoJan 20, 2020
15
不管从哪方面讲都是后台做好啊:用户体验 和 SEO。
除非你想偷懒 |
|
16
@heiheidewo 从部署的角度来讲,我希望程序是完全自己独立的,按照一般标准就能跑起来,最讨厌要配这个配那个
|
|
geekdocsJan 20, 2020
17
后端直接跳,不解释。
|
|
XusuallyJan 20, 2020
18
emmm....带了 hashtag,nginx 拿不到 啊,怎么跳
|
|
zzzmhJan 20, 2020
19
如果是整站 SPA,就前端了,我是后端也学了 vue cli,这个用 vue-router 跳一跳美滋滋,还不刷新页面,不占用服务器算力
|
|
hronroJan 20, 2020
20
你们 nginx 的配置难道不是前端在写吗?
|
|
geekdocsJan 20, 2020
21
nginx rewrite 模块
|
|
geekdocsJan 20, 2020
22
如果是分离且用了前端路由,可以让前端跳。
|
|
wee911Jan 20, 2020
23
看具体情况,http://abc.com/xxoo#happy 这个错误链接说导致的谁处理, 前端自己不可能产生一个不存在的路由,大概率历史原因或者后端造成的。
|
|
chairuosenJan 20, 2020
24
如果前端部署在根目录,并且是业务跳转比如 /跳 /login,前端做。
如果前端部署在二级子目录或者非业务跳转,比如活动短网址,ngxin 做。 |
|
jkmfJan 20, 2020
25
后端咋判断?#后的内容后端是拿不到的
|
|
shintendoJan 20, 2020
26
为什么都说是 spa 内跳转……这不改的是 hash 前面的路径吗
|
|
zhgg0Jan 20, 2020
27
如果是因为历史遗留,就这一种情况,我个人觉得配 ngnix 302 比较合理。
|
|
sm0kingJan 20, 2020
28
那个~~ 不担心白屏怎么做都可以。
|
|
DL9412Jan 20, 2020
29
这个又有 path 又有 hash 的,总不能是用户自己输的吧,直接去把跳过来的地方改掉不就好了
|
|
IdealyouthJan 20, 2020
30
nginx 上做啊
|
|
IdealyouthJan 20, 2020
31
@q8164305 是很简单,但是没必要
|
|
SappJan 20, 2020
33
为什么要跳转? 直接通过路由指向同一个组件不就行了么?
|
|
Zach369Jan 20, 2020
34
我现在的态度是: 能自己做的就自己做....懒得吵
|
|
imswingJan 20, 2020 via iPhone
35
你们说的前端 redirect 是啥。。。。
|
|
maple3142Jan 20, 2020 via Android
36
https://stackoverflow.com/a/5915350/6885801
在新的瀏覽器上面的 302 redirect 是會自動保留 hash 的 |
|
TorpedoJan 20, 2020
37
应该服务端做。楼上说 hash 的,这个场景根本不影响。
现在是把一个 url 映射到另一个,必然是服务端做。 要是前端做了,那会先访问一个 html,然后执行 js,才会跳转。 服务端做,第一时间就能跳过去 |
|
rioshikelong121Jan 20, 2020
38
我感觉不应该在前端做。这种规则尽量不要写在代码里面,不然变更的话还得重新发布,放在 nginx 上配置我感觉更灵活一点。
|
|
KuroNekoFanJan 21, 2020 via iPhone
39
前端做就前端做吧,不碍事
|
|
KuroNekoFanJan 21, 2020 via iPhone
40
之前看过一条微博,说新浪微博的某个跳转之前是 302redirect,后来改成页面 location.href 了
或许可以这么说:由前端来实现是更实用主义的做法 |
|
buffgekJan 21, 2020
41
听产品经理的. 他让谁改 谁就改.
|
|
elekidsJan 21, 2020
42
Nginx 做跳转,不解释
|
|
xderamJan 21, 2020 via iPhone
43
看需求 常用的跟业务无关的可以酌情做几个 不然后患无情 业务变更走不了代码 ci cd 流程 变成了运维变更 时间和风险系数都会变大 nginx 没隔离好还会影响其他业务
当然如果 nginx 是前端的一部分打包到 docker 里了当我没说 在哪做都一样 自己高兴就好 不过看楼主这描述 估计是前端扔过来的需求 所以 参见第一点 |
|
GopherTTJan 21, 2020
44
SEO router mode: 'history' Nginx 301
|
|
AmitJan 21, 2020
45
Nginx 就是个中间件,尽量少一些业务的配置(特别是这种针对单个路径的,假如这个路径后面不需要了 Nginx 是不是还要去掉配置 reload ?更新后端服务风险肯定比更新前端大吧)。33 楼说的对,前端不需要跳转,指向同一个组件就行了。退一步说,即使是后端做,我宁愿在 web 应用中做 redrict 也不想 Nginx 来实现,减少运维方面的配置也算是变相的提高服务稳定性了,因为你不知道部署的时候运维有没有把这个配置漏掉或交接给其他人的时候有没有在文档中把这条规则加上。
|