Ist es möglich, mehrere Dateien in einer Anfrage zu bedienen?Node.js dienen mehrere Dateien in einer Anfrage
Hier ist eine vereinfachte Version meines Codes, um die Homepage unserer Website bei einer Anfrage an unseren node.js-Server zu bedienen, die keine Parameter enthält (es gibt Caching-Code, der die Dateidaten zwischenspeichert, um den Server effizienter zu machen, Fehler zu behandeln) usw.):
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);
die hTML-Datei selbst importiert externen Bibliotheken mit CDN und die Verweise auf das Stylesheet, Schrift und Bild sieht wie folgt aus:
<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">
die Seite korrekt bedient wird aber 3 separate Anfragen müssen gemacht werden, um Serviere die Seite. Ich könnte mir vorstellen, dass dies die Website langsamer lädt und den Server unnötig belastet.
Ist es möglich, alle 3 Dateien in einer Anfrage zu liefern, obwohl sie unterschiedliche Inhaltstypen haben? Wenn ja, wie würden wir diese Dateien in einer Anfrage in der HTML-Datei referenzieren, und wenn nicht, gibt es eine effizientere Methode, um die Seite zu bedienen, die wir gerade verwenden?
Ich habe die Frage einschließlich Beispielcode stark aktualisiert, um besser zu veranschaulichen, was ich meine – Adam0410