-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
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
Duplicated whole page when accessing site by your-domain.com/index.html #9916
Comments
This has already been discussed here:
See my suggestions here: #9871 (comment) You should serve pages by their canonical URLs. By default, this means serving them without the If this is a problem, there's often a "pretty URL" option on CDNs and static hosts you can turn on, otherwise you can use reverse proxy settings. |
Thanks for your response and valuable feedback! Maybe it would be helpful to mention about new behavior at the migration guides. I followed the instructions step by step, but this behavior was unexpected. |
Regarding my specific case with GitLab artifacts deployment for merge requests, I couldn't find the ability to implement a redirect on the GitLab side. GitLab integration requires an index.html file for viewing artifacts of MR. I added a workaround trick to replace the URL on the client side. It looks messy, and I don't like it, but it resolved the issue. Perhaps it can be helpful to someone else: // docusaurus.config.ts
import type {Config, HtmlTagObject} from '@docusaurus/types';
// see https://github.com/facebook/docusaurus/issues/9916
const redirect = `
(function() {
var pathname = window.location.pathname;
if (pathname.endsWith('index.html')) {
history.replaceState(
null,
pathname,
pathname.replace('index.html', '')
);
}
})();
`.replace(/\n/g, '');
const config: Config = {
// ...
headTags: [
{
tagName: 'script',
attributes: {
src: 'data:text/javascript,' + redirect,
},
},
] satisfies HtmlTagObject[],
}; |
We'll try to fix this for V4 in #10059 |
Have you read the Contributing Guidelines on issues?
Prerequisites
npm run clear
oryarn clear
command.rm -rf node_modules yarn.lock package-lock.json
and re-installing packages.Description
Description
Accessing docusaurus build by direct URL
domain.com/index.html
causes a duplicated page issue.It looks like shipped
docusaurus serve
CLI implements a redirect fromindex.html
>/
. And it is a specific logic which are not presented in http servers by default.Background
I'm trying to migrate docusaurus
2.4.3
>3.1.1
and faced an issues with merge-request integration in GitLab pipelines. GitLab pipeline produces a docusaurus build artifact which can be accessible by URL's likesome-domain.com/-/repoName/-/jobs/12345/artifacts/build/index.html
.Attempts to omit
index.html
part, i.e.some-domain.com/-/repoName/-/jobs/12345/artifacts/build/
caused of HTTP404 error. Probably it's possible to have a workaround fix by adjusting redirect rules for my case. Anyway, duplicated content behavior looks like a bug.Reproducible demo
Steps to reproduce
npx create-docusaurus@latest my-website classic --typescript cd my-website/ npm install npm run build
docusaurus serve
)cd build python3 -m http.server 9005
Expected behavior
No duplicated content appears
Actual behavior
Whole site is rendered twice. Duplicated top-level menu and page content.
You can also observe this on https://docusaurus.io/index.html
Your environment
Self-service
The text was updated successfully, but these errors were encountered: