Base de Conhecimento
Cómo subir una web hecha con React / Vite a tu hosting con cPanel (modo estático) Imprimir este Artigo
Esta guía explica cómo subir a tu cuenta de hosting una web hecha con React, Vite u otro bundler similar, tratándola como lo que realmente es en producción: archivos estáticos HTML, CSS y JS.
La idea es:
-
Generar el build de producción en tu PC.
-
Subir ese build al hosting usando cPanel → Administrador de archivos.
-
(Opcional pero muy recomendable para SPA) Configurar un
.htaccesspara que todas las rutas de la app apunten aindex.html.
1. ¿Qué es “modo estático” en React / Vite?
Cuando ejecutás:
-
npm run builden un proyecto creado con Create React App, se genera una carpetabuild/con una versión optimizada de tu sitio lista para servir en cualquier servidor web estático. -
npm run builden Vite genera una carpetadist/con assets estáticos optimizados listos para ser servidos desde un hosting estático.
Eso significa que no necesitás Node corriendo en el servidor para mostrar la web: cPanel (Apache) sirve el HTML/JS/CSS como cualquier sitio tradicional.
2. Requisitos previos
Antes de empezar, asegurate de tener:
-
Proyecto funcionando en tu máquina
-
Podés levantarlo con
npm run devsin errores.
-
-
Node + npm instalados en tu PC
-
La versión no importa tanto mientras sea compatible con tu proyecto.
-
-
Acceso al cPanel de tu hosting
-
Usuario y clave del panel.
-
-
(Opcional) Cliente FTP como FileZilla, si preferís FTP.
De todos modos, con el Administrador de archivos de cPanel alcanza.
3. Paso 1 – Crear el build de producción en tu PC
Abrí una terminal en la carpeta raíz del proyecto y ejecutá:
Según el stack, se va a generar:
-
Create React App: carpeta
build/. -
Vite: carpeta
dist/.
No subas toda la carpeta del proyecto al servidor: solo necesitamos el resultado del build (build/ o dist/).
4. Paso 2 – Comprimir el build en un ZIP
Para hacer la subida mucho más rápida:
-
Entrá a la carpeta
build/odist/. -
Seleccioná todos los archivos y carpetas internos.
-
Creá un archivo ZIP (por ejemplo:
sitio-react-build.zip).
La idea es subir un solo ZIP al servidor y extraerlo allá, en lugar de subir cientos o miles de archivos uno por uno.
5. Paso 3 – Entrar a cPanel y abrir el Administrador de archivos
-
Iniciá sesión en cPanel.
-
Andá a File Manager / Administrador de archivos.
-
En el panel izquierdo, ubicá la carpeta:
-
public_html→ es la raíz del dominio principal (por ejemplo,tudominio.com). -
Si estás usando un addon domain o subdominio, fijate en el apartado Dominios de cPanel cuál es su “document root” y entrá a esa carpeta.
-
Todo lo que pongas dentro del document root es lo que va a ver el navegador al visitar tu dominio.
6. Paso 4 – Subir el ZIP del build y extraerlo
Dentro de la carpeta donde querés que viva tu sitio (por ejemplo public_html):
-
Hacé clic en Upload / Cargar.
-
Seleccioná tu ZIP (
sitio-react-build.zip) desde tu PC. -
Esperá a que el upload llegue al 100%.
-
Volvé al listado de archivos, seleccioná el ZIP y usá la opción Extract / Extraer.
Muy importante
Después de extraer, asegurate de que:
-
El archivo
index.htmlesté directamente dentro de la carpeta pública (public_htmlo la raíz del addon domain). -
Que no haya quedado algo como
public_html/build/index.html(salvo que hayas configurado el dominio para apuntar a/build).
Lo habitual es que el contenido del build quede plano, así:
7. Paso 5 – (Opcional pero recomendado) Configurar rutas para SPA con .htaccess
Si tu web tiene rutas tipo:
-
/productos -
/contacto -
/tienda/categoria/ropa
y las manejás con React Router o similar, al refrescar esas URLs el servidor no sabe qué archivo devolver y puede mostrar un 404.
La solución típica en Apache (lo que hay detrás de cPanel) es usar un .htaccess que:
-
Sirve archivos y carpetas reales normalmente.
-
Si la URL no coincide con nada físico, redirige la petición a
index.htmlpara que React se encargue.
En la misma carpeta donde está tu index.html (por ejemplo public_html), creá o editá el archivo .htaccess con este contenido:
Con esto:
-
Si la URL pide un archivo real (
/logo.png,/robots.txt, etc.), se sirve ese archivo. -
Si no existe nada físico (por ejemplo
/productos/123), se devuelveindex.htmly tu app React maneja la ruta.
8. Paso 6 – Probar el sitio
-
Abrí tu dominio en el navegador:
https://tudominio.com -
Probá navegar por las diferentes secciones.
-
Refrescá la página (F5) estando en una ruta interna (ej:
https://tudominio.com/productos):-
Si la configuración
.htaccessestá bien, la SPA se vuelve a cargar. -
Si ves un error 404 del servidor, hay un problema en la ruta o el
.htaccess.
-
9. Errores frecuentes y cómo resolverlos
9.1. Veo un listado de archivos (“Index of /”)
Posibles causas:
-
Falta el archivo
index.htmlen la carpeta pública. -
index.htmlquedó dentro de una subcarpeta (public_html/build/index.html).
Solución: mover el contenido del build (no la carpeta entera) a la raíz pública.
9.2. En la URL /productos funciona, pero al refrescar tira 404
Causa típica de SPA sin configuración de reescritura.
Solución: asegurate de tener el .htaccess para SPA tal como está en el paso 7.
9.3. Cambié el código pero no veo los cambios
Posibles motivos:
-
No volviste a correr
npm run buildantes de subir. -
El navegador está usando una versión cacheada.
Solución:
-
Volver a ejecutar
npm run build. -
Volver a comprimir y subir el ZIP + extraer.
-
Hacer hard refresh en el navegador (Ctrl+F5 / Cmd+Shift+R) o probar en modo incógnito.
9.4. La app funciona en /, pero falla si la alojo en un subdirectorio
Si tu app vive en https://tudominio.com/app/, algunas herramientas (como Vite) requieren configurar el parámetro base para builds que viven en un subdirectorio.
En ese caso, revisá la documentación de tu bundler (por ejemplo Vite) para ajustar el base antes de hacer el build.
10. Enlaces recomendados
Para quien quiera profundizar, estas son las docs oficiales y artículos relacionados:
-
React – Deployment (Create React App)
https://create-react-app.dev/docs/deployment/ -
Vite – Building for Production
https://vite.dev/guide/build -
Vite – Despliegue de un sitio estático (ES)
https://es.vite.dev/guide/static-deploy -
Documentación de File Manager de cPanel
https://docs.cpanel.net/cpanel/files/file-manager/ -
Cómo usar File Manager en cPanel (artículo genérico)
https://www.namecheap.com/support/knowledgebase/article.aspx/9700/29/how-to-use-file-manager-in-cpanel/ -
Ejemplo de reglas .htaccess para SPA (React Router)
https://gist.github.com/alexsasharegan/173878f9d67055bfef63449fa7136042 -
Artículo: Configuring client-side routing on Apache (.htaccess)
https://brandonclapp.com/configuring-client-side-routing-on-apache-htaccess
Esta resposta lhe foi útil?
Artigos Relacionados
Para crear una cuenta de correo electrónico, sigue estos pasos: Accede a tu cPanel. Ve a...
Para crear una base de datos MySQL, sigue estos pasos: Accede a tu cPanel. Ve a "Bases de...
Para subir archivos usando el Administrador de Archivos, sigue estos pasos: Accede a tu...
Para configurar un dominio adicional, sigue estos pasos: Accede a tu cPanel. Ve a "Dominios...
Solución al Error 503 Service Unavailable: Falta de Espacio en la Cuenta de Hosting En...
