2011-01-10 18 views
5

おはよう!ASP.NET MVC用のCSSおよびJavaScriptファイルの結合、最小化、およびgzip

私は、CSSとJavaScriptファイルを組み合わせ、最小化し、gzipするソリューションを探しています。 (構築しながら処理を実行するために)タスクを構築VSの形で

  • (キャッシング結果で)その場で処理ファイルでASP.NETハンドラー\モジュールの形で

    • :彼らは2つの形式で来るようです

    一般的に私はいずれかで大丈夫です。

    私は多くのソリューションを見てきました(そして、この記事のASP.NETハンドラをたくさん使っています)。でも、多分何か「必要があります」が出てきてしまいました。

    ありがとうございます!

  • 答えて

    6

    ここに私の助言があります:ビルドタスクとHTTPキャッシュ出力を使用します。

    ビルドの面では、プロジェクトファイル、MSBUILDファイル、またはNANTファイルにプラグインできるコマンドラインユーティリティを備えた、お気に入りのJavaScriptマイナー(私のお気に入りはGoogle Closure Minifier)をチェックアウトすることをお勧めします。 CSS(私は個人的にはYahoo! YUI Compressorを使います)と同じです。 LESSを使用している場合は、確かにこれをYUIコンプレッサーと組み合わせることができます。画像を最適化するには、optipngを使用します。これらの人が個々のサイトでどのように働くかについての指針があります。

    これらのファイルをすべて最適化して最適化したら、MVCのハンドラまたはコントローラアクションを使用してそれらのファイルを出力します。後続の要求は最初の要求に応じてダウンロードしたファイルがデフォルトになりますように有効期限を設定するには、これはあなたのコードで実行したいと思う:

    Response.ExpiresAbsolute = DateTime.Now.AddYears(1); 
    

    あなたはとてもキャッシュバスターの戦略をお勧めします可能性が高い以上のものをコンテンツファイルを変更することができます。これを行うには、ランダムなパラメータをハンドラに渡します。これについてはいくつかの異なる方法があります... Googleだけです。

    これが役に立ちます。

    +0

    レスポンスありがとう、私はCSSやJS(ASP.NETとPHPの両方)を処理するためにこのようなパイプラインを手作業で組み立てていましたが、バンドル/コンポーネントは見たことがありますか? – artvolk

    +0

    @artvolk「バンドル/コンポーネント」とはどういう意味ですか? – zowens

    +0

    私は何かを意味しています(ライブラリ?dll?msbuild task?)これは素晴らしい方法ですべてをVSにラップします。 – artvolk

    2

    私は中小規模のサイトにtelerik mvc componentsを使用しています。 NuGetを追加して設定するのは簡単でした。

    +0

    応答のおかげで、このバンドルのこの部分を意味するのですか? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk

    +0

    はい。 Webアセットマネージャは、そのすべてを処理します。私はそれのオープンソース版を使用しています。 –

    2

    あなたのjavascript/cssリクエストを(他のものの中でも)処理できます。 Wiki: Javascriptを参照してください。

    あなたのパーシャルビューに書き込む部分を含め、すべてのJavaScriptをページ下部に配置することができます。 Wiki: Inline script

    関連する問題