Erro ao atualizar a página com ReactJS e React Router

Com o servidor local funciona, mas em produção ao tentar fazer o reload da página (que não seja a principal) dá erro 404.

Já foi pego de surpresa ao tentar acessar a aplicação em produção (uma rota específica) e, ao tentar atualizar com F5, aparecer a mensagem de erro 404? É bem simples de resolver, mas assusta num primeiro momento.

Assusta? Como assim, Márcio? Se rodando localmente está tudo funcionando lindamente e, ao atualizar a página (com ReactJS e React Router) em modo produção, falha...

Como corrigir o erro ao atualizar a página com ReactJS e React Router?

Como em produção trabalha-se apenas com o arquivo .html (SPA - Single Page Application), precisamos configurar um fallback.

Se tentar acessar a aplicação, vamos supor: myapp.com.br/reports, a rota /reports, por padrão, seria interpretada como um arquivo reports.html. Ao configurarmos o fallback, resolvemos esse problema.

Acesse a pasta/diretório public da sua aplicação e crie o arquivo __redirects. Adicione o seguinte conteúdo:

/* /index.html 200

Agora, depois que fizer o deploy, ao fazer o reload em qualquer rota vai funcionar normalmente.

Referência: https://create-react-app.dev/docs/deployment/#netlify

Até breve!

Outras postagens interessantes:

Comentários