4
respostas

Flutter Web - Erro 404

Boa noite! Não sou muito de desenvolvimento web e talvez por isso esteja com esse probleminha. Fiz um site com Flutter Web e o coloquei no GitHub Pages, até ai tudo bem, pois eu consigo acessar o site e está funcionando.

O problema começa quando tento mandar um link específico para alguém. Ex: Eu consigo acessar o site normalmente por www.user.github.io/meusite/index.html.

Mas se eu tento acessar por www.user.github.io/meusite/meuapp ou qualquer outra área após o "meusite/", recebo o erro File Not Found 404.

Eu acredito que é uma situação simples de se resolver. Porém com meu nível altíssimo de desenvolvimento web (contém ironia), não estou conseguindo encontrar uma solução.

Agradeço por qualquer ajuda!

Att. Ricardo

4 respostas

E aí, Ricardo!

O lance do erro 404 geralmente tá relacionado ao roteamento da tua aplicação, e parece que o GitHub Pages tá meio perdido quando você vai além do index.html, né?

Primeiro passo, confere se o teu Flutter Web tá configurado direitinho pra lidar com rotas. Às vezes, precisamos usar o BrowserRouter ou HashRouter do pacote flutter_web_plugins pra dar um empurrãozinho nessa parada.

Outra coisa, o GitHub Pages pode ser meio chatinho com o roteamento. Às vezes, é só uma questão de criar um arquivo chamado 404.html na raiz do teu projeto (mesmo diretório do index.html). Dizem por aí que isso ajuda o GitHub Pages a se virar com as rotas.

Se mesmo assim não resolver, pode ser que a configuração do teu yaml ou pubspec.yaml esteja causando confusão. Verifica se as URLs tão batendo certinho com o que tu tá usando no GitHub Pages.

Opa... Boa noite!

Eu imaginei que era algo com relação as rotas mesmo. Acredito que eu não tenha configurado da forma correta. É com relação a isso que você se refere?

routes: {
        '/aquahelp/': (_) => const AquaHelp(),
        '/exemplifica/': (_) => const Exemplifica(),
        '/lockpass/': (_) => const LockPass(),
        '/spreadgifs/': (_) => const SpreadGifs(),
        '/homepage/': (_) => const HomePage(),
        '/spreadgifs/privacypolicy/': (_) => const PrivacyPolicy(),
        '/exemplifica/privacypolicy/': (_) => const PrivacyPolicy(),
        '/lockpass/privacypolicy/': (_) => const PrivacyPolicy(),
        '/aquahelp/privacypolicy/': (_) => const PrivacyPolicy(),
      },

Nunca usei esse BrowserRouter e HashRouter. Vou ver se encontro algo!

Tentei essa idéia do 404.html e o erro persiste. Não aparece mais a tela com o erro 404! Mas também não carrega a tela. =/

Descobri o que causou o problema!

Eu retirei a "#" da url através do Flutter Web Plugins com o "setUrlStrategy(PathUrlStrategy());" Quando fiz isso a # foi retirada e começou a dar o problema com a navegação. Se eu entrava diretamente pela url, estava com em tudo. Mas se fosse usar um F5. Já era!

Não consegui encontrar uma solução pra isso! Apenas retirei as mudanças e voltei com a url original.

Tive esse problema no GitHub Pages, caso alguém passe pelo mesmo, já sabe o motivo.