2013-12-23 5 views
5

Ich versuche, Gzip-Komprimierung für meine Assets in einer Sails.js (Node) -Anwendung zu aktivieren. Beim Start der App in der Produktionsumgebung werden alle Assets in assets/linker/js und assets/linker/styles verkettet, minimiert, erfolgreich egglifiziert (wie in der Gruntdatei angegeben). Die folgenden Ausgabedateien generiert:Wie Gzip JavaScript und CSS-Assets in Sails.js gzip?

.tmp/ 
    public/ 
    min/ 
     production.js 
     production.css 

Ich möchte gzip-Komprimierung als auch hinzufügen, ich habe deshalb Grunzen-contrib-Kompresse installiert und hinzugefügt, um die Kompresse Aufgabe der Gruntfile. Ich kann die folgenden Ergebnisse mit erfolgreich gezippten Dateien erhalten.

.tmp/ 
    public/ 
    min/ 
     production.js 
     production.js.gz 
     production.css 
     production.css.gz 

Mein Problem ist jetzt, dass der Server mit den gzip-Dateien zu reagieren muss (wenn der Client übernimmt die Codierung) anstelle von den normalen und ich kann nicht einen Weg, dies zu tun finden. Vielleicht sind Politik die Segel, um so etwas zu tun? Oder gibt es eine andere Möglichkeit, Express-Middleware zu verwenden?

Wenn es hilft, ist dies die aktuelle Segel-Linker Aufgabe, die die JavaScript-production.js-Datei in das Markup eingefügt:

... 

    prodJs: { 
    options: { 
     startTag: '<!--SCRIPTS-->', 
     endTag: '<!--SCRIPTS END-->', 
     fileTmpl: '<script src="%s"></script>', 
     appRoot: '.tmp/public' 
    }, 
    files: { 
     '.tmp/public/**/*.html': ['.tmp/public/min/production.js'], 
     'views/**/*.html': ['.tmp/public/min/production.js'], 
     'views/**/*.ejs': ['.tmp/public/min/production.js'] 
    } 
    }, 

    ... 

Vielen Dank im Voraus.

Antwort

6

Ich empfehle Ihnen, dieses GitHub Problem zu lesen (Enable Express compression in Sails.js by default), und diese stackoverflow Antwort (Add express middleware for param validations) für weitere Details und sailsjs Framework Weg.

Hoffen Sie, dass diese Hilfe, und zögern Sie nicht, weitere Details zu stellen, wenn Sie auf einige Schwierigkeiten stoßen.

+0

Wow, das ist cool, ich habe mir das GitHub-Problem bereits angeschaut, aber ich konnte mir nicht vorstellen, dass nur das Hinzufügen der Datei den Job erledigen würde. :) Jetzt habe ich es hinzugefügt und es funktioniert wie Magie! –

+1

Sailsjs ist Magie :) –