Estoy tratando de cargar una página HTML junto con dos archivos CSS separados a través de la devolución de llamada de http.createServer(). Aquí está la parte importante del código hasta ahora:
var server = http.createServer(function (req, res) { var htmlData = fs.readFileSync(__dirname + "/public/index.html"); res.writeHead(200, { 'Content-Type': 'text/html' }); res.write(htmlData); res.end(); }).listen(port);
Cuando intento cargar esto, también intenta cargar los archivos CSS vinculados dentro del archivo HTML. Intenté agregar enlaces directos dentro del encabezado y agregar un script dentro del archivo HTML para agregar los enlaces al encabezado, pero ninguno funcionó. ¿Cómo puedo hacer esto sin poner el contenido de los archivos CSS directamente dentro de las etiquetas en el archivo HTML?
Está ignorando la ruta de la solicitud y dándole el mismo archivo cada vez.
Debe entregar el archivo correcto en función de la solicitud.
Por ejemplo: si desea servir dos archivos index.html
y style.css
:
var server = http.createServer(function (req, res) { if (req.url === '/' || req.url === '/index.html') { // respond to both / and /index.html var htmlData = fs.readFileSync(__dirname + "/public/index.html"); res.writeHead(200, { 'Content-Type': 'text/html' }); res.write(htmlData); res.end(); } else if (req.url === '/style.css') { // respond to /style.css var cssData = fs.readFileSync(__dirname + "/public/style.css"); res.writeHead(200, { 'Content-Type': 'text/css' }); res.write(cssData); res.end(); } }).listen(port);