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
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is runningLas versiones antiguas de Docker muestran "Cannot connect to the Docker daemon" en su lugar. En ambos casos, el motor de Docker no está iniciado.
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.Comprueba que Docker responde
Terminaldocker infoResultado esperado: Muestra una sección Server en lugar de un error.
Vuelve a ejecutar tu comando
docker build -t saas-landing ., y luegodocker run -p 3030:3030 saas-landing.
Un puerto ya está en uso
ports are not available: exposing port TCP 0.0.0.0:3030 … bind: address already in use
Error: listen EADDRINUSE: address already in use :::3030La 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.
Averigua qué ocupa el puerto
En macOS o Linux:
Terminallsof -i :3030En Windows, en PowerShell:
Terminalnetstat -ano | findstr :3030Detenlo
Cierra ese programa o detén la ejecución anterior: Ctrl+C en su terminal, o
docker stopcon el ID del contenedor que muestradocker ps. Después vuelve a iniciar el sitio.O usa otro puerto
Conserva el otro programa e inicia el sitio en un puerto libre, aquí
3041:Cómo lo ejecutas Comando Docker docker run -p 3041:3030 saas-landingServidor de desarrollo yarn dev -p 3041Versión de producción yarn start -p 3041Con Docker, cambia solo el número a la izquierda de
-p: el sitio dentro del contenedor siempre escucha en3030.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 builddescarga las fuentes Inter y Noto Sans Arabic de Google Fonts. El mensaje "Failed to fetchInterfrom 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_URLno es una dirección completa. Escríbela conhttps://, comohttps://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é.
landing-page-template-2docker 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
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.
corepack enableDespué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 ejecutas | Después de cambiar un valor |
|---|---|
yarn dev | Cámbialo en .env.local, detén el servidor y vuelve a ejecutar yarn dev. |
yarn build y yarn start | Cámbialo en .env.local, vuelve a ejecutar yarn build y luego yarn start. |
| Docker | Vuelve a construir la imagen con el valor como --build-arg. La construcción de la imagen ignora .env y .env.local. |
| Vercel | Cá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 enpublic/. - 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.remotePatternsennext.config.js, o copia la imagen enpublic/. - 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_URLestá 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.
Un botón o un enlace no hace nada
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.