0

バンドル:これは、一意の名前で参照でき、HTTP リクエスターでロードできるファイルの単純な論理グループです。

縮小化:コードから不要な空白、改行、およびコメントを削除してサイズを縮小し、読み込み時間を短縮するプロセスです。

これが私の考えです。

基本的に、コードのモジュール性、可読性、および保守性のために、複数の CCS、JS、およびイメージ ファイルを使用します。ここで、複数の JS および CSS ファイルは、ブラウザーからの複数の HTTP 要求を必要とし、Web ページのパフォーマンスとロード時間の低下につながります。場合によっては、Web サイトの全体的なパフォーマンスの低下につながります。

すべての静的コンテンツを AWS S3 に保存し、それらを CloudFront 配布リンクで提供し、これらの CDN パスを複数のプロジェクトへのバンドルと縮小で使用したいと考えています。

以下のコードのように、CDN からすべての JS ファイルを単一のバンドルにバンドルしようとしています (バンドルとミニケーション用)。

var myCDN = "http://cdn.myawsdomain.com/";
bundles.Add(new ScriptBundle("~/bundles/js", myCDN)
        .Include(
                 "~/MyS3BucketName/Scripts/jquery.cookie.js",
                 "~/MyS3BucketName/Scripts/bootstrap.min.js",
                 "~/MyS3BucketName/Scripts/wow.min.js"
               ));

以下のコードも試してみましたが、うまくいきません!

bundles.Add(new ScriptBundle("~/bundles/js")
       .Include(
       "http://cdn.myawsdomain.com/MyS3BucketName/Scripts/jquery.cookie.js",
       "http://cdn.myawsdomain.com/MyS3BucketName/Scripts/bootstrap.min.js",
       "http://cdn.myawsdomain.com/MyS3BucketName/Scripts/wow.min.js"
       ));

どんな助けでも大歓迎です。

4

1 に答える 1

0

誰かの助けになるかもしれないので、私は自分の質問に答えています。

ASP.Net MVC Bundle Config を使用して、圧縮および縮小されたバージョンの JS および CSS ファイルを生成しました。バンドル構成で複数の CDN を組み合わせることはできません (1 つのスクリプトのみ)。

次の手順を実行して、圧縮および縮小された JS および CSS ファイルを生成しました。

を。必要な JS ファイルをスクリプト バンドルの仮想パス (「~/scripts/bundle」) を使用してバンドル構成に含め、Web ページがエラーなしでブラウザーに読み込まれることを確認します。

BundleTable.EnableOptimizations = true;
bundles.UseCdn = true;

bundles.Add(new ScriptBundle("~/scripts/bundle")
       .Include("~/Yourscriptfile1.js")
       .Include("~/Yourscriptfile2.js")
       .Include("~/Yourscriptfile3.js")
        );

b. これらすべての JS ファイルを 1 つのファイルに圧縮および縮小するには、ローカル マシンのブラウザーから HTTP 要求を仮想パス ( http://localhost:254/scripts/bundle ) に送信し、応答を「output.min.js」ファイルに保存します。

c. 「output.min.js」ファイルを S3 バケットにアップロードし、このオブジェクトのパブリック読み取り専用プロパティを設定し、遠い将来の有効期限を含む expire ヘッダーを追加し、S3 バケットを CDN として構成します。

Key="Cache-Control", Value="max-age=1814400" - [3 週間] Key="Expires", Value="Thu, 30 Dec 2021 16:00:00 GMT" - [遠い将来の有効期限それだけ]

d. 上記のコード (Step-a) を以下のコードに変更して、バンドル構成ファイルで CDN を構成します。

BundleTable.EnableOptimizations = true;
bundles.UseCdn = true;

string CDN = "http://cdn.mydomain.io/Scripts/compress/output.min.js";
bundles.Add(new ScriptBundle("~/scripts/bundle", CDN)
        .Include("~/Yourscriptfile1.js")
        .Include("~/Yourscriptfile2.js")
        .Include("~/Yourscriptfile3.js")
        );

上記のコードでは、リリース モードで CDN からスクリプトが要求されます。スクリプトのデバッグ バージョンは、デバッグ モードでローカルに描画されます。

于 2016-03-09T14:30:37.390 に答える