GitHub Pages

By pre-rendering your pages, you can remove the need for a production server. You can then deploy your app to any static host, such as GitHub Pages.

Static hosts always expect one .html file per URL. This means you need to pre-render all your pages, regardless of render mode. For example, if you have SPA pages, then you also need to pre-render them which will generate .html files with an empty <body>.

You can choose between following deploy strategies:

  • Build locally and upload dist/client/ to GitHub Pages.
  • Let a GitHub action build and upload dist/client/ to GitHub Pages.
  • Let GitHub Pages build your app.

The $ vite build command generates dist/client/ containing all static assets.

We recommend using the GitHub Pages Deploy Action. For example, vike.dev uses the GitHub action at .github/workflows/docs.yml to automatically deploy whenever a commit changes the docs.

You can try out your production build locally with $ vite preview, or any other tool such as $ serve dist/client/.

If you don't deploy your app at your domain root https://my-domain.com, but at https://my-domain.com/somewhere/nested instead, then change your app's Base URL. You need to do this if you use the GitHub Page domain username.github.io/repo-name/*.

⚠️

Make to sure to add an empty file .nojekyll, otherwise GitHub Pages won't serve static files starting with _.