En una SPA (Single Page Application) con React Router, cuando un usuario:
- Accede directamente a una ruta (ej: `/favoritos`)
- Refresca la página en una ruta específica
- Comparte un enlace a una ruta específica
El servidor intenta buscar un archivo físico en esa ruta. Al no encontrarlo, devuelve un error 404 en lugar de servir el `index.html` que contiene la aplicación React.
**Solución:** Configurar el servidor para que todas las rutas que no correspondan a archivos estáticos redirijan a `index.html`, permitiendo que React Router maneje el enrutamiento del lado del cliente.
---
## ✅ Verificaciones Previas
### 1. React Router Configurado Correctamente
✅ **BrowserRouter** (no HashRouter) - Verificado en `src/App.tsx`:
```tsx
import { BrowserRouter, Routes, Route } from "react-router-dom";
// ...
<BrowserRouter>
<Routes>
{/* rutas */}
</Routes>
</BrowserRouter>
```
### 2. Base Path Correcto
✅ **Vite config** - Verificado en `vite.config.ts`:
```ts
base: base, // '/' por defecto, o '/repository-name/' para GitHub Pages
```
---
## 🔧 Configuraciones por Servidor
### 1. Vite Dev Server (Desarrollo)
**Archivo:** `vite.config.ts`
✅ **Ya configurado** - Vite maneja automáticamente el SPA routing en desarrollo.
**Nota:** El servidor de desarrollo de Vite (`npm run dev`) ya maneja correctamente las rutas SPA.
---
### 2. Vite Preview (Previsualización Local)
**Archivo:** `vite.config.ts`
✅ **Configurado** - El servidor de preview también maneja rutas correctamente.
**Comando:**
```bash
npm run preview
```
---
### 3. Nginx (Producción - Servidor Propio)
**Archivo:** `nginx.conf.example`
✅ **Configurado** con:
```nginx
location / {
try_files $uri $uri/ /index.html;
}
```
**Instrucciones:**
1. Copiar `nginx.conf.example` a `/etc/nginx/sites-available/emerges-tes`