0

MVC 5 プロジェクトに小さな JS ライブラリがあり、外部ユーザーがアプリにロードできるようにしたいと考えています。現時点では、次のようにバンドルしています。

bundles.Add(new ScriptBundle("~/clientApi")
    .IncludeDirectory("~/Api/clientapps/", "*.js"));

その後、バンドルされたライブラリにブラウザー経由でパスでアクセスできます/clientApi

ただし、web.config debug=true を設定しても常に縮小され、自分のアプリの他のバンドルは縮小されていないものとして含まれています。

バンドル内のファイルを縮小されていないバンドル ファイルとして利用できるようにするにはどうすればよいですか?

4

2 に答える 2

1

/clientApi直接アクセスする場合は、はい、バンドル/縮小版になります。

このdebug=trueオプションは、独自のファイルでのスクリプト参照に影響します。の場合、個々のスクリプト ファイルへの参照がクライアントにレンダリングされます (したがって、クライアントはまったく使用しません)。 .cshtmldebug=true/clientApi

の場合debug=false/clientApi代わりに (バージョン クエリ文字列を使用して) への参照がクライアントにレンダリングされるため、バンドルされた/縮小されたバージョンが取得されます...これらの外部ユーザーにそのリンクを提供すると、それがレンダリングされます。 .

そのパスは、デバッグかどうかは気にしません。/clientApiコンパイル設定に応じてファイルをバンドルするのではなく、縮小するのではありません...アプリバンドル/縮小されたパスまたは個々のスクリプトパスをレンダリングするだけです。

外部アプリでデバッグ/テストを行う場合は、個々のスクリプト パスを使用するだけで済みます。

/clientApiテストが完了し、バンドルされた/縮小されたバージョンを使用する準備ができたら、これらの外部アプリに参照を提供したとしても、バージョン管理をどのように処理するかは説明されていません。スクリプトを更新した場合、スクリプトはキャッシュを停止することをどのように知るのでしょうか?

于 2013-11-28T16:59:08.500 に答える
0

実際には、バンドルの変換を無効にすると、バンドルを縮小せずに提供できます

protected void Application_Start() {
    BundleTable.EnableOptimizations = true; // Force bundling to occur

    // If the compilation node in web.config indicates debugging mode is enabled
    // then clear all transforms. I.e. disable Js and CSS minification.
    if (HttpContext.Current.IsDebuggingEnabled) {
        BundleTable.Bundles.ToList().ForEach(b => b.Transforms.Clear());
    }
}
于 2015-02-25T13:35:59.693 に答える