1
resposta

Rotas não funcionam após deploy

Primeiramente gostaria de parabenizar pela aula. Aprendi bastante coisa.

Mas quando fui subir a aplicação para um servidor ela não funcionou as rotas corretamente. Cheguei até a criar um arquivo responsável por pegar a porta do servidor que estou usado (heroku) Também adicionei o seguinte código: app.use('/', express.static(resolve(__dirname, './build')))

Mas toda vez que acesso alguma rota diferente da "/" eu recebo o erro "Cannot GET /cardapio"

Me ajudem por favor, estou me batendo com isso

1 resposta

Oi Diego, tudo bem?

Desculpe a demora em retornar.

Fico feliz em saber que você gostou da aula e está aplicando o que aprendeu em um projeto real. O problema que você está enfrentando pode estar relacionado à configuração incorreta das rotas no servidor que está hospedando sua aplicação.

Quando você executa sua aplicação localmente, o servidor é capaz de direcionar corretamente as rotas para as páginas correspondentes, mas quando você faz o deploy da aplicação em um servidor externo, pode haver algumas diferenças na configuração que estão impedindo o redirecionamento correto das rotas.

Com base no código que você forneceu, parece que você está usando o Express para configurar o servidor. A primeira coisa que você deve verificar é se você definiu corretamente as rotas no servidor.

Por exemplo, se você tem uma rota /cardapio, você deve definir essa rota no servidor. Isso pode ser feito usando o método get do objeto app do Express, como mostrado abaixo:

app.get('/cardapio', (req, res) => {
  // lógica para renderizar a página de cardápio aqui
});

Certifique-se de que todas as rotas que você deseja acessar estejam definidas dessa forma. Além disso, verifique se você está usando o método correto ao fazer solicitações no navegador. Por exemplo, se você definiu a rota com o método get, deve fazer uma solicitação GET ao acessar a rota no navegador.

Outra coisa que você pode verificar é se o Express está servindo corretamente os arquivos estáticos da sua aplicação. Quando você usa express.static para servir arquivos estáticos, o Express serve os arquivos diretamente, sem passar pelas rotas definidas na sua aplicação.

Certifique-se de que o caminho para a pasta build esteja correto. No seu código, você está usando a função resolve do Node.js para obter o caminho absoluto da pasta build. Certifique-se de que essa função esteja retornando o caminho correto.

app.use('/', express.static(resolve(__dirname, './build')))

Além disso, verifique se o arquivo que você deseja acessar está presente na pasta build. Se você estiver acessando a rota /cardapio e a página correspondente estiver no arquivo cardapio.html, certifique-se de que esse arquivo esteja presente na pasta build.

Espero que essas dicas possam ajudá-lo a solucionar o problema que está enfrentando com as rotas. Lembre-se de verificar se todas as rotas estão definidas corretamente, se os arquivos estáticos estão sendo servidos corretamente e se o servidor está recebendo as solicitações corretamente.

Um abraço e bons estudos.