solid-start icon indicating copy to clipboard operation
solid-start copied to clipboard

[Bug?]: how to prerender *404 page?

Open huseeiin opened this issue 1 year ago • 2 comments

Duplicates

  • [X] I have searched the existing issues

Latest version

  • [X] I have tested the latest version

Current behavior 😯

when i prerender /about it creates a about/index.html file correctly. but when i prerender "/*404" it generates nothing.

Expected behavior 🤔

No response

Steps to reproduce 🕹

import { defineConfig } from "@solidjs/start/config";

export default defineConfig({
  server: {
    preset: "cloudflare-pages",
    prerender: { routes: ["/*404"] },
  },
});

Context 🔦

No response

Your environment 🌎

No response

huseeiin avatar Jul 03 '24 16:07 huseeiin

I dont think this is possible with Nitro? I'm not sure this is a SolidStart problem?

well, since solidstart uses nitro, it is a solidstart problem even if it originates from nitro

huseeiin avatar Jul 03 '24 20:07 huseeiin

using the code provided with these versions

├── @solidjs/[email protected]
├── @solidjs/[email protected]
├── @solidjs/[email protected]
├── [email protected]
└── [email protected]

cloudflare-pages

Screenshot 2024-07-06 at 05 57 59 but you probably don't need it for this preset as workers can already serve a 404 page

cloudflare-pages-static

import { defineConfig } from '@solidjs/start/config';

export default defineConfig({
  server: {
    preset: 'cloudflare-pages-static',
    prerender: {
      // crawlLinks: true, // required for `cloudflare-pages` preset
      autoSubfolderIndex: false,
      routes: ['/404'],
    },
  },
});

This might be what you want which also generates a redirect rule /* /404.html 404 which for some reason is not supported yet But 404.html will be detected and will be used as 404 redirection expcept for /404 which returns 200

Screenshot 2024-07-06 at 06 27 31

mdynnl avatar Jul 05 '24 23:07 mdynnl

I would expect you to be able to put /404 and have it work because it doesn't exist. The thing is 404 page doesn't exist so to make it exist you need to put it in the list. And it should match the star route. From there you can set up your redirect rules in your provider to point to that page.

ryansolid avatar Sep 25 '24 20:09 ryansolid