fix(history): stricter check of base in HTML5 #3556
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixed a bug in getLocation of HTML5 History that would slice the
path
, even if it's just a string-prefix of thebase
. (e.g. forbase=/a/
andpath=/app
it would turn it to/a/pp
.)With the fix, I replaced the string-prefix check (via
path.indexOf(base) === 0
) into, an OR of these two conditions:path === base
(case insensitive, as it was)path
starts withbase
as a directory (i.e.base
plus at least a/
after that), sopath.indexOf(base+"/") === 0
I tested it locally in my own repo that had this problem, and the fix is effective. I also ran the
npm test
and it passed all the tests. I didn't find any example unit test is already testing custombase
to add to it.Thanks.
Fix #3555