この質問に対する適切な答えが見つかりません。他にも同様の質問がいくつかありますが、適切な回答が得られません。
Visual Studio で、アプリケーションの公開時に圧縮する必要があるすべてのファイル (HTML、XML、CSS) を自動的に圧縮する方法はありますか?
サーバー上に余分な空白、コメント、その他のものをすべて持つのは、少し無意味で無駄に思えます。さまざまな拡張機能と NuGet パッケージを探しましたが、解決策を提供してくれるものは見つかりませんでした。
この質問に対する適切な答えが見つかりません。他にも同様の質問がいくつかありますが、適切な回答が得られません。
Visual Studio で、アプリケーションの公開時に圧縮する必要があるすべてのファイル (HTML、XML、CSS) を自動的に圧縮する方法はありますか?
サーバー上に余分な空白、コメント、その他のものをすべて持つのは、少し無意味で無駄に思えます。さまざまな拡張機能と NuGet パッケージを探しましたが、解決策を提供してくれるものは見つかりませんでした。
Cassetteのようなものが必要です。
Cassette は、すべての JavaScript、CoffeeScript、CSS、LESS、Sass、および HTML テンプレートを自動的に並べ替え、連結、縮小、キャッシュ、およびバージョン管理します。
使い方はとても簡単で、ドキュメントを読むだけです。セットアップには最大で 5 分かかります。
インストールするには、NuGet パッケージ コンソールを開き、次のように入力します。
Install-Package Cassette.Web
これにより、インストールと設定が行われます。
ヘルプや提案が必要な場合は、Google グループをチェックしてください。
http://groups.google.com/group/cassette
SquishIt を使用するオプションもあります。MVC3 で正常に動作し、カセットと同じ目的を果たします。でも、個人的にはカセットの方が好きです。
http://lostinthegc.wordpress.com/2012/01/14/using-squishit-in-an-asp-net-mvc3-web-application/
もう 1 つの便利なツールはChirpyです。2010 年までは VS で使用していました。単純な XML ファイルでバンドルを定義しています。VS に統合されるため、ファイル (css、less、js など) が変更された場合、縮小されたバージョンがバックグラウンドで自動的に (再) レンダリングされます。
http://www.weirdlover.com/2010/05/22/visual-studio-add-in-for-dotless-js-and-css-files/
次のサンプル ファイル (.chirp.config) では、特定の CSS ファイルがバンドルされ、external.min.cssとinternal.min.cssという名前の 2 つのファイルに縮小されます。
<?xml version="1.0"?>
<root>
<FileGroup Name="external.css">
<File Path="css/jquery.ui.core.css" />
<File Path="css/jquery.ui.theme.css" />
<File Path="css/jquery.ui.button.css" />
<File Path="css/default.css" />
</FileGroup>
<FileGroup Name="internal.css">
<File Path="css/jquery.ui.core.css" />
<File Path="css/jquery.ui.theme.css" />
<File Path="css/jquery.ui.autocomplete.css" />
<File Path="css/jquery.ui.progressbar.css" />
<File Path="css/jquery.ui.accordion.css" />
<File Path="css/default.css" />
<File Path="css/datatables.css" />
</FileGroup>
</root>
Nuget でWebMarkupMinパッケージを使用しています。プログラムで HTML 出力を生成するときに使用する非常に優れた HTML ミニファイアがあります。
var htmlMinifier = new HtmlMinifier();
var result = htmlMinifier.Minify(myHTML, generateStatistics: false);
Console.WriteLine(result.MinifiedContent);