Implantar um aplicativo Vite/React nas páginas do GitHub é um marco emocionante, mas o processo às vezes pode vir com desafios inesperados, especialmente ao lidar com imagens e ativos. Esta postagem do blog orientará você por todo o processo, desde a implantação inicial até a solução de problemas comuns e a obtenção de soluções eficazes.
Seja você um iniciante ou alguém com experiência, este guia o ajudará a evitar armadilhas comuns e a implantar com sucesso seu aplicativo Vite/React com todos os ativos renderizados corretamente.
Antes de começarmos, certifique-se de ter o seguinte:
Primeiro, certifique-se de que seu aplicativo Vite/React esteja inicializado corretamente e funcione no host local. Você pode criar um projeto Vite básico da seguinte maneira:
npm create vite@latest
Instalar dependências:
npm install
Execute o projeto localmente para confirmar que tudo funciona:
npm run dev
Quando seu projeto estiver pronto, envie-o para seu repositório GitHub.
O GitHub Pages espera que o aplicativo seja servido a partir de uma URL base específica, que normalmente é o nome do seu repositório. Atualize o arquivo vite.config.js para refletir isto:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ base: process.env.NODE_ENV === 'production' ? '/your-repo-name/' : '/', plugins: [react()], })
A opção base garante que o aplicativo use o caminho base correto quando implantado.
Você precisará instalar o pacote gh-pages para lidar com a implantação.
npm install gh-pages --save-dev
Em seu package.json, adicione os seguintes scripts para automatizar o processo de implantação:
"scripts": { "predeploy": "npm run build", "deploy": "gh-pages -d dist" }
Execute a implantação:
npm run deploy
Neste ponto, seu projeto deve estar ativo em https://
Após a implantação, você poderá perceber que o aplicativo carrega uma página em branco. Isso geralmente é causado por problemas de roteamento. Por padrão, é usado o BrowserRouter do react-router-dom, que depende do roteamento do lado do servidor, mas o GitHub Pages serve arquivos estáticos e não lida com rotas do lado do cliente.
Solução: use HashRouter
Para resolver isso, mude de BrowserRouter para HashRouter em seu arquivo index.js ou main.jsx.
import { HashRouter } from 'react-router-dom'; createRoot(document.getElementById('root')).render();
HashRouter usa um símbolo de hash (#) na URL para acompanhar o estado de navegação, permitindo que GitHub Pages atenda rotas diferentes de maneira adequada sem retornar um 404.
Depois de corrigir o problema da página em branco, outro problema que você pode enfrentar é o aplicativo funcionar na página inicial, mas mostrar um erro 404 ao navegar para outras rotas, especialmente se você acessar diretamente uma rota como /blogs ou /projects.
Isso acontece porque o GitHub Pages só sabe como servir o arquivo index.html e não reconhece rotas gerenciadas pelo React Router.
Solução: lidar com erros 404 nas configurações de páginas do GitHub
Para corrigir isso, você precisa criar um arquivo 404.html em sua pasta public/. Este arquivo garantirá que o GitHub Pages forneça seu arquivo index.html para quaisquer rotas que ele não reconheça, permitindo que o React Router lide com o roteamento:
Um dos problemas de implantação mais comuns é que as imagens não carregam corretamente. Embora funcionem bem no host local, você pode notar links de imagens quebrados após a implantação nas páginas do GitHub.
Por exemplo, você pode fazer referência a uma imagem como esta em seus componentes:
Problema: caminhos de imagem incorretos
O problema aqui é que caminhos absolutos (começando com /) não funcionam bem quando o aplicativo é implantado em um subdiretório (por exemplo, /nome-do-seu-repo/). GitHub Pages tenta encontrar a imagem em https://
Solução: use BASE_URL
Para corrigir isso, mova todas as suas imagens para Pública/Imagens, embora isso seja opcional, eu recomendo fortemente que você faça isso. Você acrescentará dinamicamente o BASE_URL aos caminhos da imagem com base no ambiente:
const BASE_URL = import.meta.env.BASE_URL;
Isso garante que o caminho correto seja usado tanto no desenvolvimento (localhost) quanto na produção (páginas do GitHub).
Depois de implementar as correções para roteamento e caminhos de imagem, reconstrua e reimplante seu aplicativo:
npm run build npm run deploy
Seu aplicativo Vite/React agora deve estar totalmente implantado com todas as imagens renderizadas corretamente e todas as rotas tratadas corretamente.
Resumindo:
Com essas etapas, seu aplicativo Vite/React deve estar ativo e funcionando perfeitamente nas páginas do GitHub. Boa codificação e implantação!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3