es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Página no encontrada en Next.js después de implementación.

Creé una aplicación simple de Next.js usando create-next-app.
Agregué solo algunas páginas en la carpeta de páginas (contact.js, help.js)

Puedo construir y iniciar la aplicación en localhost usando los siguientes comandos

npm run build
npm run start

Esta es la parte de script del package.json

“scripts”: {
“dev”: “node server.js”,
“build”: “cross-env next build”,
“start”: “cross-env NODE_ENV=production node server.js”,
“lint”: “next lint”
},

Desplegué esta aplicación en un host compartido con panel de control Plesk.
La página de inicio está bien,
pero no se encuentran las páginas de ayuda y contacto
ni al escribir directamente la URL en la barra de direcciones, ni al hacer clic en el enlace (next/link)

Contenido de la carpeta .next:

https://i.stack.imgur.com/fBWqc.png

Contenido de la carpeta .next/server:

https://i.stack.imgur.com/zpmDr.png

Contenido de la carpeta .next/server/pages:

https://i.stack.imgur.com/c5Tyi.png

Al principio configuré el Archivo de Inicio de Aplicación como:

node_modules/.bin/next

y traté de ejecutar el script de inicio, pero no funcionó, así que para iniciar la aplicación
Configuré el Archivo de Inicio de Aplicación como: customserver.js en Plesk de la siguiente manera:
https://i.stack.imgur.com/o2MRV.png

Custom Server

¿Qué puede estar mal aquí?
¿Alguna idea?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución de problemas de error “Archivo no encontrado” para la aplicación Next.js en un alojamiento compartido Plesk

    Problema

    La aplicación Next.js se implementó en un host compartido con panel de control Plesk. La página de índice funciona correctamente, pero las páginas de ayuda y contacto no se encuentran incluso al escribir directamente la URL en la barra de direcciones o al hacer clic en el enlace. La carpeta .next y sus subcarpetas tienen el contenido necesario.

    Solución

    1. Primero, asegúrese de que la compilación se haya realizado correctamente y no haya errores. Ejecute el siguiente comando para compilar la aplicación localmente:
      npm run build
      
    2. Verifique si el archivo de servidor personalizado customserver.js está configurado correctamente como el Archivo de inicio de la aplicación en el panel de control de Plesk. El archivo customserver.js se encuentra en la carpeta .next/server.
      node customserver.js
      

      Si el archivo de servidor personalizado no está configurado correctamente, la aplicación no se iniciará.

    3. Si el archivo de servidor personalizado está configurado correctamente, verifique si el archivo .htaccess existe en el directorio raíz de la aplicación. Debe contener el siguiente código para redirigir todas las solicitudes al archivo de servidor personalizado:

      RewriteEngine On
      RewriteRule ^ nextjs_app/customserver.js
      

      Reemplace nextjs_app con la ruta real de su aplicación. Si el archivo .htaccess no está configurado correctamente, las solicitudes no se redirigirán al archivo de servidor personalizado y las páginas no se encontrarán.

    4. Si los pasos anteriores no funcionaron, intente ejecutar la aplicación directamente en el servidor usando SSH. Conéctese al servidor usando SSH y navegue hasta el directorio raíz de la aplicación. Luego, ejecute el siguiente comando para iniciar la aplicación:

      NODE_ENV=production node customserver.js
      

      Si la aplicación se inicia correctamente, puede haber un problema con la configuración de Plesk. Puede intentar reinstalar o actualizar el panel de control de Plesk.

    5. Si ninguno de los pasos anteriores funciona, comuníquese con su proveedor de alojamiento web para obtener más ayuda.

    Conclusión

    Para implementar una aplicación Next.js en un host compartido con panel de control Plesk, asegúrese de establecer el archivo de servidor personalizado como el Archivo de inicio de la aplicación y configure correctamente el archivo .htaccess para redirigir todas las solicitudes al archivo de servidor personalizado. Si la aplicación aún no funciona, intente ejecutarla directamente en el servidor usando SSH y comuníquese con su proveedor de alojamiento web para obtener más ayuda.

Comments are closed.