vuejs / vue-router

🚦 The official router for Vue 2
http://v3.router.vuejs.org/
MIT License
18.99k stars 5.06k forks source link

fix(history): Resolve the href in `<base>` correctly (#3819) #3823

Open ichaoX opened 1 year ago

ichaoX commented 1 year ago

Relates to: #3819, #2865

netlify[bot] commented 1 year ago

Deploy Preview for vue-router-docs-v3 canceled.

Name Link
Latest commit 992fd4bf226e209ba6791b5abf91734f4ede1d9c
Latest deploy log https://app.netlify.com/sites/vue-router-docs-v3/deploys/646e0bb050065c00085989b1
posva commented 1 year ago

Thanks for the PR. Can you provide a failing test or boiled-down repro? Note a base should not contain a hash

ichaoX commented 1 year ago

An example of reproduction can be found in #3819, and you can view the source code of the Reproduction link.

Some browser extensions or proxies may modify <base>, and as a standard feature of html, it is necessary to support it correctly.

This PR should implement support for almost all legal baseURIs. The <base> tag is then respected after ensuring the prerequisites of availability and consistency . Support base.href containing relative URI or hash, even cross-origin cases.

posva commented 1 year ago

That base has a hash though. As I said, it cannot have a hash

ichaoX commented 1 year ago

That reproduction link contains several mistakes at the same time:

  1. incorrect relative path
  2. incorrect hash
  3. there is an extra slash between base and hash

Additional reproduction links:

https://5s3iuf.csb.app/root/path.html

https://5s3iuf.csb.app/root/sameorigin.html

ichaoX commented 1 year ago

@posva Do you need any other repro?