-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
(WIP, NO MERGE) routerMode:history for the docsify site #1968
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
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 2da44fa:
|
Nice, the deployment works fine with it! F.e. https://docsify-preview-ll3a2gp9v-docsifyjs.vercel.app/markdown
Old bookmarks will still work fine. Try the following (with a hash): https://docsify-preview-ll3a2gp9v-docsifyjs.vercel.app/#/language-highlight
...single-page app mode with routerMode:history
025a89f
to
61b94dd
Compare
Edit: see https://docsify-preview-git-routermode-history-for-website-docsifyjs.vercel.app/quickstart
It works fine, but doesn't seem to show 404.
Great job, but it seems that when using a browser to view the source code, it is a 404 page code, is this normal?
image
Ah, you found an issue! There's actually two things happening in your screenshot:
1) For the vercel deploy, it is not using the 404.html trick, it is using vercel.json to rewrite URLs on the server. So for a path like /notexistspage
, it sends back the content of /index.html
. Here's a screenshot that shows status code 200, with index.html
being returned:
Screenshot 2023年01月25日 at 10 33 21 PM
What we can do is update the vercel.json
so that it will not rewrite a URL if it ends with .md
, that way the client will receive 404
and will know what file to look for.
2) For docsify.js.org
this is deployed on GitHub Pages, which behaves in a different way: the 404.html page is needed on GitHub in order to redirect to the root /
path, then our Docsify JS code can load the content. Without this, routerMode:history
won't function on GitHub Pages.
So, for vercel, the 404.html stuff is not needed, it is only for GitHub, and doesn't have the issue that Vercel does.
For Vercel, I'll update vercel.json so it'll do what we want with the .md
lookups.
I've been experimenting on https://docs.lume.io. I'll bring back what I learn from there.
Uh oh!
There was an error while loading. Please reload this page.
Summary
This allows us to deploy the Docsify site to a static server that handles unknown URLs with a default
404.html
page, for example GitHub Pages.As an example, https://docs.lume.io is published on GitHub pages. Notice that the URLs are in
history
mode, and you can refresh the site while on any path, and it works. Pushing to the github repo automatically updates the deployment using this GitHub Actions file.What kind of change does this PR introduce?
Repo settings
Docs
For any code change,
Does this PR introduce a breaking change? (check one)
If yes, please describe the impact and migration path for existing applications:
Related issue, if any:
Tested in the following browsers: