Ir al artículo
Aniq-UI

SaaS Landing PageSolución de problemas

Solución de problemas

Los errores que puedes encontrar al instalar o construir la landing page, qué causa cada uno y cómo solucionarlo.

Docker no se está ejecutando

Lo que ves
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is running

Las versiones antiguas de Docker muestran "Cannot connect to the Docker daemon" en su lugar. En ambos casos, el motor de Docker no está iniciado.

  1. Abre Docker Desktop

    Inicia Docker Desktop y espera a que indique que el motor está en ejecución. En Linux, inicia el servicio: sudo systemctl start docker.

  2. Comprueba que Docker responde

    Terminal
    docker info

    Resultado esperado: Muestra una sección Server en lugar de un error.

  3. Vuelve a ejecutar tu comando

    docker build -t saas-landing ., y luego docker run -p 3030:3030 saas-landing.

Un puerto ya está en uso

Lo que ves
ports are not available: exposing port TCP 0.0.0.0:3030 … bind: address already in use
Error: listen EADDRINUSE: address already in use :::3030

La primera línea viene de Docker, la segunda de yarn dev o yarn start. Otro programa ya escucha en el puerto 3030: a menudo una ejecución anterior de este sitio o el servidor de desarrollo de otro proyecto.

  1. Averigua qué ocupa el puerto

    En macOS o Linux:

    Terminal
    lsof -i :3030

    En Windows, en PowerShell:

    Terminal
    netstat -ano | findstr :3030
  2. Detenlo

    Cierra ese programa o detén la ejecución anterior: Ctrl+C en su terminal, o docker stop con el ID del contenedor que muestra docker ps. Después vuelve a iniciar el sitio.

  3. O usa otro puerto

    Conserva el otro programa e inicia el sitio en un puerto libre, aquí 3041:

    Cómo lo ejecutasComando
    Dockerdocker run -p 3041:3030 saas-landing
    Servidor de desarrolloyarn dev -p 3041
    Versión de producciónyarn start -p 3041

    Con Docker, cambia solo el número a la izquierda de -p: el sitio dentro del contenedor siempre escucha en 3030.

    Resultado esperado: El sitio responde en localhost:3041Local.

La construcción falla

docker build se detiene con "failed to solve" y el paso que falló; yarn build se detiene con el propio error. Las causas habituales:

  • Sin conexión o tiempo de espera agotado: la construcción descarga las dependencias, y next build descarga las fuentes Inter y Noto Sans Arabic de Google Fonts. El mensaje "Failed to fetch Inter from Google Fonts" significa que la construcción no pudo acceder a ellas. Vuelve a ejecutar el comando cuando tengas conexión; con Docker, los pasos terminados quedan en caché.
  • `Invalid URL`: NEXT_PUBLIC_SITE_URL no es una dirección completa. Escríbela con https://, como https://www.your-domain.com.
  • No space left on device: libera espacio en Docker Desktop o revisa cuánto usa Docker con docker system df.
  • Falla en el mismo paso cada vez: vuelve a construir sin la caché.
Terminalen landing-page-template-2
docker build --no-cache -t saas-landing .

Sin Docker, elimina las carpetas node_modules y .next, y luego vuelve a ejecutar yarn install y yarn build.

Yarn dice que su versión es 1.22

Lo que ves
This project's package.json defines "packageManager": "yarn@4.8.1…". However the current global version of Yarn is 1.22…

El proyecto fija Yarn 4 mediante Corepack. Este mensaje significa que Corepack aún no está activado, así que respondió en su lugar el Yarn global antiguo.

Terminal
corepack enable

Después vuelve a ejecutar yarn install. Si tu Node.js no trae Corepack, instálalo antes con npm install -g corepack. Si no se encuentra yarn en absoluto, el mismo comando lo soluciona.

Un ajuste cambiado no hace nada

NEXT_PUBLIC_SITE_URL y NEXT_PUBLIC_API_BASE_URL se compilan en la página al construirla. Cambiarlos no cambia nada hasta que el sitio se vuelve a construir.

Cómo lo ejecutasDespués de cambiar un valor
yarn devCámbialo en .env.local, detén el servidor y vuelve a ejecutar yarn dev.
yarn build y yarn startCámbialo en .env.local, vuelve a ejecutar yarn build y luego yarn start.
DockerVuelve a construir la imagen con el valor como --build-arg. La construcción de la imagen ignora .env y .env.local.
VercelCámbialo en Environment Variables del proyecto y vuelve a desplegar.

Faltan algunas imágenes

  • Las fotos de los testimonios y las imágenes de las tarjetas del blog están vacías: se cargan desde images.unsplash.com, así que necesitan conexión a internet, también en el equipo que sirve el sitio. Todas las demás imágenes están en public/.
  • Un error dice que un hostname "is not configured under images in your `next.config.js`": usaste una imagen de un sitio web que aún no está permitido. Añade su host a images.remotePatterns en next.config.js, o copia la imagen en public/.
  • Una imagen nueva en `public/` no se muestra: su ruta en el código empieza en la raíz del sitio, sin public, como /images/your-photo.jpg. Con Docker, vuelve a construir la imagen.

El formulario de newsletter solo muestra su mensaje de error

La sección de newsletter no está en la página por defecto. Una vez que la añades, el formulario muestra su mensaje de error cuando:

  • NEXT_PUBLIC_API_BASE_URL está vacía. El formulario no envía nada hasta que se configura y el sitio se vuelve a construir.
  • Tu API responde con un error, o no responde en <NEXT_PUBLIC_API_BASE_URL>/newsletter/subscribe.
  • Tu API no permite la dirección del sitio en sus ajustes de CORS. La consola del navegador muestra entonces un error de CORS.

La página se abre en árabe

Abrir / lleva al visitante a /ar cuando el navegador prefiere el árabe, y a /en en los demás casos. Pulsa el botón de idioma del encabezado, o abre /en directamente. Para empezar siempre en inglés, prefiera lo que prefiera el navegador, añade localeDetection: false junto a locales en src/i18n/routing.ts.

Los enlaces del menú y del pie de página apuntan a #, y los botones Get Started, Start Free Trial, Book a Demo y los de precios aún no tienen destino. Es intencionado: tú decides a dónde llevan, a tu página de registro, a tu documentación o a tu página de contacto.

La carpeta se ve diferente

Ejecuta los comandos dentro de la carpeta en la que se extrae el ZIP, landing-page-template-2. Contiene Dockerfile, package.json, yarn.lock, messages, public y src. Si no tienes el comando unzip, extráelo con tu gestor de archivos; algunas herramientas añaden una carpeta extra con el nombre del ZIP, así que entra en la carpeta interior.

¿Te atascaste en un paso?

Busca una solución antes de empezar de nuevo.

Solución de problemas

Preferencias de Cookies

Utilizamos cookies para mejorar tu experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Al hacer clic en "Aceptar Todo", consientes nuestro uso de cookies para análisis y publicidad personalizada.