Komprimieren von .js und .css Dateien beim Drücken der Website

8

Ich bin mir nicht einmal sicher, ob etwas, was ich will, möglich ist, also bitte ich euch, lassen Sie es mich wissen, wenn jemand das vorher gemacht hat. Also, mein Ziel ist, wenn ich auf "Veröffentlichen" -Website in VS2010 klicke, alle Javascript-Dateien in eine komprimierte, selbe mit css und dann in meiner Layout-Datei die Verweise von allen anderen js und css-Dateien auf nur diese beiden zusammenführen Einsen. Ist das machbar? Oder vielleicht ist es machbar, aber in manueller Weise?

Natürlich ist das Ziel hier, nur zwei Aufrufe externer Dateien auf der Website zu haben, aber wenn ich mich entwickle, muss ich alle Dateien sehen, damit ich damit arbeiten kann. Ich denke, ich könnte es manuell vor jedem Push machen, aber ich würde es lieber automatisch mit einem Skript oder etwas machen lassen. Ich habe noch nichts versucht, und ich suche keine fertige Lösung, ich versuche nur, das Problem besser kennen zu lernen und vielleicht ein paar Tipps.

Vielen Dank!

    
Hubert Jarema 16.03.2012, 13:46
quelle

6 Antworten

13

Dies ist eingebaut in ASP.net 4.5 . Aber in der Zwischenzeit sollten Sie sich die folgenden Projekte ansehen.

  • YUI-Kompressor
    • Das Ziel dieses Projekts ist es, Javascript und Cascading Style Sheets auf ein effizientes Level zu komprimieren, das genau wie die Originalquelle funktioniert, bevor es minimiert wurde.
  • Kassette
    • Cassette sortiert, verkettet, minimiert, speichert und vervielfältigt alle Ihre JavaScript-, CoffeeScript-, CSS-, LESS- und HTML-Vorlagen automatisch.
  • RequestReduce
    • Super einfache automatische Sprit-, Minifikations- und Bündelungslösung
    • Sie müssen RequestReduce nicht mitteilen, wo sich Ihre Ressourcen befinden
    • Ihr CSS und Javascript können überall sein - sogar auf einem externen Host
    • RequestReduce findet sie zur Laufzeit automatisch
  • SquishIt
    • SquishIt lässt Sie etwas JavaScript und CSS quetschen. Und auch etwas LESS und CoffeeScript.
  • Combres
    • .NET-Bibliothek, die die Minimierung, Komprimierung, Kombination und Zwischenspeicherung von JavaScript- und CSS-Ressourcen für ASP.NET- und ASP.NET MVC-Webanwendungen ermöglicht. Einfach gesagt, hilft es Ihren Anwendungen, mit YSlow und PageSpeed ​​besser zu ranken.
  • Chirpy
    • Mashes, minimiert und validiert Ihre Javascript-, Stylesheet- und Dotless-Dateien. Chirpy kann T4MVC und andere T4-Vorlagen auch automatisch aktualisieren.

Scott Hanselman schrieb einen guten Überblick Blog-Post zu diesem Thema vor einer Weile.

    
jessegavin 16.03.2012, 13:49
quelle
3

Ich habe die Antwort, die Cassette erwähnt, gewählt, aber ich werde diese spezielle Entscheidung ein wenig genauer erläutern. Cassette ist ziemlich konfigurierbar, aber unter der gebräuchlichsten Option können Sie CSS- und Javascript-Ressourcen durch folgende Syntax referenzieren:

%Vor%

Sie würden diese dann in Ihren Master- oder Layout-Seiten wie folgt rendern:

%Vor%

Während der Entwicklung werden Ihre Skripte und Styles als einzelne Dateien eingefügt, und Cassette versucht Ihnen zu helfen, indem es Änderungen erkennt und versucht, diese Dateien vom Browser neu zu laden. Dieser Ansatz eignet sich hervorragend für das Debuggen in Bibliotheken wie "Knockout", wenn sie etwas tun, was Sie nicht erwarten. Und das Beste daran, wenn Sie die Website starten, ändern Sie einfach die Datei web.config, und Cassette minimiert und bündelt alle Ihre Dateien in so wenige Pakete wie möglich.

Sie finden weitere Details in ihrer Dokumentation (was ziemlich gut ist, aber manchmal hinter der Entwicklung zurückliegt): Ссылка

    
Milimetric 16.03.2012 13:55
quelle
1

Sehen Sie sich YUI compressor @ codeplex.com an, das könnte wirklich hilfreich sein.

    
steveoh 16.03.2012 13:49
quelle
1

Was ich vorher getan habe, ist ein Post-Build-Event einzurichten, damit es läuft einfache Batch-Datei, die Ihre Quelldateien minimiert. Wenn Sie sich im Freigabe-Modus befinden (nicht im Debug-Modus), würden Sie auf die minimierten Quelldateien verweisen. Ссылка

    
Matthew 16.03.2012 13:51
quelle
1

Ich habe nichts von der Minification der Veröffentlichung gehört. Ich denke, Verwendung sollte zwischen dynamischer Verkleinerung wie SquishIt oder Kompilierzeit wie YuiCompressor oder AjaxMinifier wählen.

Ich bevorzuge Kompilierzeit. Ich denke nicht, dass es sehr wichtig ist, zeitverändernde Dateien kompilieren zu müssen. Wenn Sie große css / js-Codezeilen haben, können Sie diese Aktion nur für die Kompilierung von Releases wählen und wenn es hilft, diese Dateien nur in den benötigten Build-Konfigurationen zu veröffentlichen.

    
Denis Agarev 16.03.2012 13:52
quelle
0

Ich weiß nicht, ob es irgendeinen Weg gibt, die Funktionalität des 'Veröffentlichen'-Buttons / was auch immer es ist, zu erreichen, aber es ist sicherlich möglich, einen solchen' statischen Build-Prozess 'zu haben.

Persönlich verwende ich Apache ANT , um genau das zu schreiben, was Sie dort beschrieben haben. Sie entwickeln also auf Ihren unkomprimierten js / html / css-Dateien und wenn Sie fertig sind, rufen Sie wie ant build auf, was dann Ihre gesamte Webanwendung minimiert, komprimiert, streift und veröffentlicht.

Beispielskript: Ссылка

    
jAndy 16.03.2012 13:52
quelle