Skip to main content

Fix the Docusaurus trailing slash issue in self-host

Create a file called static/js/fix-location.js with:

if (window && window.location && window.location.pathname.endsWith('/') && window.location.pathname !== '/') {
window.history.replaceState('', '', window.location.pathname.substr(0, window.location.pathname.length - 1))
}

Load this file as static JS file in docusaurus.config.js:

  scripts: [
{
src: '/js/fix-location.js',
async: false,
defer: false,
}
],

ref: https://github.com/facebook/docusaurus/issues/2394#issuecomment-630638096

Another solution to fix this by using busybox

FROM node:16 AS build
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# Deployment step

FROM busybox:1.35 as deploy

RUN adduser -D static
USER static
WORKDIR /home/static

COPY --from=build /usr/src/app/build/ ./

EXPOSE 3000

CMD ["busybox", "httpd", "-f", "-v", "-p", "3000"]