O Node.js serve vários arquivos em uma solicitação
É possível servir vários arquivos em uma solicitação?
Aqui está uma versão simplificada do meu código para servir a página inicial do site em uma solicitação para o servidor node.js. que não contém parâmetros (existe um código de cache que armazena em cache os dados do arquivo para tornar o servidor mais eficiente, lida com erros etc.) :
var http = require("http");
http.createServer(function(req, res){
res.setHeader("Access-Control-Allow-Origin", "*");
if (req.url == "/"){
res.writeHead(200, {"Content-Type": "text/html"});
fs.readFile("./pages/index/index.html", function(err, data){
res.end(data);
});
} else if (req.url == "/index.css"){
res.writeHead(200, {"Content-Type": "text/css"});
fs.readFile("./pages/index/index.css", function(err, data){
res.end(data);
});
} else if (req.url == "/index.js"){
res.writeHead(200, {"Content-Type": "application/javascript"});
fs.readFile("./pages/index/index.js", function(err, data){
res.end(data);
});
} else if (req.url == "/indexBackground.jpg"){
res.writeHead(200, {"Content-Type": "image/jpeg"});
fs.readFile("./pages/index/images/background.jpg", function(err, data){
res.end(data);
});
}
}).listen(port);
O próprio arquivo html importa bibliotecas externas usando CDNs e as referências à folha de estilo, script e imagem têm a seguinte aparência:
<link rel="stylesheet" href="https://our-website-url/index.css">
<script type="text/javascript" src="https://our-website-url/index.js"></script>
<img src="https://our-website-url/indexBackground.jpg">
A página foi veiculada corretamente, mas três solicitações separadas devem ser feitas para veicular a página. Eu imagino que isso torna o site mais lento para carregar e adiciona carga desnecessária ao servidor.
É possível veicular todos os três arquivos em uma solicitação, apesar de terem tipos de conteúdo diferentes? Em caso afirmativo, como referenciaríamos esses arquivos, todos servidos em uma solicitação no arquivo html? Caso contrário, existe um método mais eficiente para servir a página do que o que estamos usando atualmente?