Lo siento si esta es una pregunta estúpida . Pero, ¿cómo se comunican las aplicaciones integradas en NextJS con los navegadores ya que no hay un archivo .html en la estructura de carpetas después de crear npx create-next-app ?
El archivo index.html se crea después de ejecutar la next build .
El código que escribe para Next.js es una especie de abstracción del sitio web que desea servir al final.
Eso significa que está escribiendo código Javascript de una manera fácil y conveniente, que tiene que seguir las reglas que ha especificado Next.js. Luego, le está diciendo a Next.js que compile su código ( next build ), y Next.js crea el sitio web real basado en su código Javascript.
Los archivos del sitio web se crean dentro de la carpeta /.next , la ubicación de index.html es /.next/server/pages/index.html . (ver API de compilación de Next.js )
Next.js también proporciona su propio servidor de nodos , por lo que si llama next start (después de next build ), iniciará su propio servidor, que simplemente sabe dónde buscar los archivos.
Next.js también define algunas rutas detrás de escena (basadas en su carpeta /pages ), que es (más o menos) la razón por la que no ve ningún index.html en la barra de direcciones del navegador.
Si está utilizando next export en lugar de next start , Next.js creará archivos estáticos y encontrará una carpeta que contiene archivos .html y todo lo que probablemente esperaba ver, y que puede ser atendido por algún otro servidor de archivos estático. ( Para esto, debe eliminar al menos la <Image> del proyecto creado por create-next-app , debido a las limitaciones de la next export )
index.html Así que encontramos dónde Next.js crea un archivo index.html , pero también tenga en cuenta que, si bien tiene sentido seguir las convenciones, en realidad ni siquiera sería necesario tener un archivo index.html si está escribiendo su propio servidor, por ejemplo. :
// - save as 'server.js', // - run 'node server.js' // - open 'http://localhost:8888/abc' in the browser const http = require("http"); const url = require("url"); http.createServer(function(request, response) { var uri = url.parse(request.url).pathname; response.writeHead(200); response.write('<html><body>you called the url:' + request.url + '</body></html>'); response.end(); }).listen(8888);