Ich möchte keine Bibliothek verwenden, die wegen des Overheads im laufenden Betrieb läuft.
Die Website hat einige dynamische Komponenten, die in node.js implementiert sind.
Ich habe einige statische js und css Dateien sowie ihre gziped Gegenstücke. Ich möchte die gezippte Version nur an Browser liefern, die es unterstützen.
Ich habe erwogen, die statische Middleware in Express zu verwenden, um die statischen Dateien zu bedienen, zusammen mit einer URL-Neuschreib-Middleware, um die gezippten Dateien bedingt zu bedienen. Ich kann jedoch kein bedingtes Umschreibmodul finden.
Ich kann nicht glauben, dass niemand das getan hat oder dass es so viele Umarbeitungen braucht. Was vermisse ich?
Eine andere Anmerkung ist, dass statische Dateien über node.js zu teuer sind? Auf der anderen Seite scheint die Verwendung von Apache für statische Dateien und das Ausführen von node.js ebenfalls schlecht. Welche Konfiguration ist am wenigsten dumm für AWS EC2-Hosting?
Wenn Sie die beste Leistung für Ihre Kunden erzielen möchten, verwenden Sie einfach ein CDN. Es wird sich darum kümmern, für dich und viele andere Dinge zu gippen. Wenn Sie Hilfe benötigen, können Sie das Modul express-cdn verwenden.
Wenn Sie aus bestimmten Gründen keine CDNs mögen, verwenden Sie am besten nginx. Ich sehe es in Ihrer Frage markiert, aber Sie haben nichts darüber erwähnt. nginx ist viel schneller als node.js. Für nginx können Sie das gzip-static-Modul überprüfen.
Wenn Sie node.js weiterhin verwenden möchten, ist connect-gzip-static die beste Wahl. Es funktioniert fast genauso wie das nginx-gzip-static-Modul. Wenn es eine CoDeferenz für% co_de der angeforderten Datei gibt, wird sie diese verwenden, andernfalls wird sie auf das normale connect-static-Modul zurückgesetzt.
Vergessen Sie nicht, Dateien vorher zu kompilieren, wenn Sie Schluck verwenden, dann können Sie auch gulp-gzip verwenden . Verwenden Sie nicht einfach den Befehl gzip.
Es gibt auch gzippo , es wird im Handumdrehen gezippt, speichert aber auch das Ergebnis im Speicher. Es wird also nur einmal gezippt.
Dieser Code funktioniert mit Express 4
%Vor%Stellen Sie sicher, dass Sie den richtigen Inhaltstyp festlegen - Mime-Typen-Referenz - für die komprimierte Datei wie folgt:
%Vor%oder es wird nicht funktionieren