2

ASP.net MVC 4 Web サイトを最適化しています。現在、ランタイム バンドルを使用して、JavaScript と CSS のコンテンツを結合および縮小しています。縮小されたコンテンツが作成されたときに、CDN (具体的には Amazon Cloudfront) への公開を自動化したいと考えています。

バンドルされたファイルを CDN と統合するための最善の戦略を決定しようとしています。私の具体的な質問は次のとおりです。

  • バンドルされたファイルをローカル Web サーバーではなく CDN に保存できるライブラリはありますか?
  • バンドルする前に静的ファイルを CDN から取得する必要がありますか?それとも、バンドルする前にローカル Web サーバーから取得する必要がありますか?
  • Web ファームからのみ CDN 書き込み制御を有効にするメカニズムはありますか (一般ユーザーは対象外)?
4

2 に答える 2

3

私は個人的に「すべての静的にCDNを使用する!!」に同意しません。そのため、あなたが説明したように、ローカル スクリプトを CDN にコピーすることについて心配することを拒否します。確かに、大きなライブラリは既存の主要な CDN (Yahoo、Microsoft、Google) から参照できますが、ローカル スクリプトの場合、手間をかける価値はありません。

その考え方に従って、私はSquishItがとても好きになりました。追加の XML 構成や事前初期化を使用する必要はありません。次のように、マスターまたはレイアウト ファイルに含めるだけです。

<%= Bundle.Css()
        .Add("~/Content/Reset.less")
        .Add("~/Content/Site.less")
        .Add("~/Scripts/rcarousel/widget/css/rcarousel.css")
        .Add("~/Scripts/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.css")
        .Add("~/Content/Fonts/Karla/stylesheet.css")
        .Render("~/Cache/Bundle.css") %>

<%= Bundle.JavaScript()
        .Add("~/Scripts/jquery-1.7.2.js")
        .Add("~/Scripts/jquery-ui-1.8.19.js")
        .Add("~/Scripts/modernizr-2.5.3.js")
        .Add("~/Scripts/rcarousel/widget/lib/jquery.ui.rcarousel.js")
        .Add("~/Scripts/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.js")
        .Add("~/Scripts/jquery.youtubelite.js")
        .Render("~/Cache/Bundle.js") %>

そうは言っても、あなたの要点は次のとおりです。

1) CDN の自動展開をサポートするバンドル ライブラリについては知りません。ここでの通常の考え方は、CDN を Web サイトのディレクトリから取得してキャッシュすることです。このように、デプロイはプッシュではなくプル メカニズムによって確立されます。この記事では、ワードプレス サイトで CloudFront を使用してオリジン プルをセットアップする方法について説明します。ASP.NET の構成は似ていると思います。

2) ローカル コピーからのバンドル。すでに開発中のローカル コピーを参照している可能性があります。

3) ほとんどのクラウド ストレージ システム (Amazon S3、Azure Storage、Rackspace Cloud Files) は、クラウドにファイルを公開する方法を提供しており、ファイルは読み取り専用のままです。これは API に依存するため、クラウド ストレージ プロバイダーによって方法が異なります。

于 2012-09-04T23:09:13.770 に答える
0

さらに調査した結果、必要なことを正確に実行するSquishit.S3ライブラリに出会いました。基本的に、それは squishit に便乗し、実行時にバンドルされたファイルを S3/Cloudfront バケットにコピーできるようにします。構成は簡単で、Amazon の API を使用しているため、資格情報を使用して CDN に書き込みます。すでに Squishit を使用している場合は、global.asax にいくつかのデフォルト構成行を追加するだけで、残りは自動的に処理されます。

于 2012-09-07T15:57:18.767 に答える