A estrutura dos meus arquivos é esta:
/routes
├── [slug]
│ ├── +page.svelte
├── portfolio/[slug]
│ ├── +error.svelte
│ └── +page.svelte
├── +error.svelte
├── +layout.server.js
├── +layout.svelte
├── +page.svelte
└── +server.js
Eu layout.server.js
verifico as URLs para enviar os dados corretos (não tenho certeza se é o caminho certo, mas até agora está tudo bem):
// +layout.server.js
import { error } from '@sveltejs/kit';
export async function load({ url }) {
//...run some code
if(urlNotfound) {
throw error(404, 'Not found here');
}
return { correctData };
}
Quero que a +error.svelte
página correta (ou pelo menos qualquer) seja exibida, mas nenhuma delas é mostrada. Continuo tendo a página de erro nativa. Por quê?
Erros em funções de carregamento de layout funcionam de forma diferente:
Então, se você lançar um erro no layout raiz, você obterá o erro padrão ou o
src/error.html
arquivo, se ele existir ( mais informações sobre respostas de erro e este arquivo ).Você pode contornar isso com um grupo de rotas , ou seja