Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

默认 rewrite 规则过于宽泛导致 Rewriting /infos/home/ to /fruits/home.html #35

Open
jiadesen opened this issue Apr 6, 2023 · 9 comments

Comments

@jiadesen
Copy link
Contributor

jiadesen commented Apr 6, 2023

example 默认规则为:/\/(apple|banana|strawberries|home)/
这会匹配任何存在 /home 的地址,会造成如题所示重定向错误,正常应该重定向到 /infos/home/index.html

@emosheeep
Copy link
Owner

默认规则是兜底规则,不是100%正确的,不满足条件的时候可以自己配置插件的 Rewrites 规则,这个规则优先级更高

@jiadesen
Copy link
Contributor Author

jiadesen commented Apr 6, 2023

懂,但是是否默认就提供精确点的规则,因为绝大部分用户不会主动去了解这个插件的原理,更不会去配置 rewrites

@emosheeep
Copy link
Owner

emosheeep commented Apr 6, 2023

我理解 base 加 name 足够了,/info/home 这种路径本身就不在入口配置里,不具有可控性,兼容不可控的路径我理解就像一个无底洞,是不具备可维护性的

@jiadesen
Copy link
Contributor Author

jiadesen commented Apr 6, 2023

改进后的默认规则会是这样:/\/(apple|banana|strawberries|home)(?:\.html?)?(\?|#|$).*/,既然是多入口,肯定会对应到具体的 html 文件,然后就是参数的拼接了,仅此而已

@emosheeep
Copy link
Owner

emosheeep commented Apr 6, 2023

懂,但是是否默认就提供精确点的规则,因为绝大部分用户不会主动去了解这个插件的原理,更不会去配置 rewrites

这么分析下来,是不是调整一下注册时机,configureServer 里 return 函数,在函数里注册。让 vite 内置的中间件先处理,我们最后在兜底会好一点

@jiadesen
Copy link
Contributor Author

jiadesen commented Apr 6, 2023

可以试一下

@emosheeep
Copy link
Owner

那先开着,周末看下

@xxxxj-up
Copy link

xxxxj-up commented Apr 6, 2023

这个问题和我之前提的东西有一些类似,但我和作者大大是一个看法,就是问题在于 /info/ 不在配置里.这个探讨问题不如探讨多页面 + 路由的重定向问题: /a/about to /pages/b.html (已经解决).顺便一提, rewrite 规则的匹配是有顺序的,写 pages 时应当注意

@jiadesen
Copy link
Contributor Author

jiadesen commented Apr 7, 2023

问题在于 /info/ 不在配置里

我是觉得配置仅需对所需的重定向和构建产物负责,而且 vite 本身作为一个开发服务器,应避免破坏配置以外的行为

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants