3

問題:

ASP.NET MVC 4.5 で行われている HTML5 オフライン アプリでは、フレームワークの組み込み機能を使用して、スタイルとスクリプトをバンドルおよび縮小しています。すべてがページ自体でうまく機能しますが、キャッシュ マニフェストへの書き込みについては、(私たちがそれを書いているため) 常にバンドルされた URL のみを発行します。

そのため、個々のデバッグ js ファイルがアプリケーション キャッシュに入らないため、オフライン モードで JavaScript をデバッグすることはできません。

コード:

登録バンドル

これが私たちのBundleConfig.RegisterBundles外観です:

    // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/Scripts").Include(
                   "~/Scripts/*.js"
                   ));
    }

HTML マークアップ

そして、次_Layout.cshtmlのようにページ自体にそれを含めます。

@System.Web.Optimization.Scripts.Render("~/bundles/Scripts")

これは、 が の場合は個々の js ファイルを発行し、 が の場合debugtrue1 つのバンドル ファイルを発行することで、ページに対して適切に機能しdebugますfalse

出力debug=true

<script src="/Scripts/ScriptOne.js"></script>
<script src="/Scripts/ScriptTwo.js"></script>
<script src="/Scripts/ScriptThree.js"></script>

出力debug=false

<script src="/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1"></script>

キャッシュマニフェスト

そして、これがスクリプトをCacheManifest

@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/Scripts")

debug=trueおよびに出力debug=false

/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1

私たちが欲しいもの?

Cache-Manifest を次のように出力する方法があるかどうかを知りたいです。

出力debug=true

/Scripts/ScriptOne.js
/Scripts/ScriptTwo.js
/Scripts/ScriptThree.js

出力debug=false

/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
4

1 に答える 1

7

MSDN のドキュメントScripts.RenderFormatでは、特定の方法について説明しています。しかし、インテリセンスは、このRenderFormatメソッドが現在参照されているバージョンに存在しないと不平を言っていましたSystem.Web.Optimization

しかし、(もう一度)Google に感謝します。SO に関するこの回答は、このRenderFormatメソッドが実際には次のバージョンのアルファ リリースに含まれていることを説明していました。そして、その回答に対するコメントは、インストール方法を説明するページにリンクされています。

PM> Install-Package Microsoft.AspNet.Web.Optimization -Pre

このバージョンでは、次のCache-Manifestように変更できます。

@System.Web.Optimization.Scripts.RenderFormat("{0}","~/bundles/Scripts")

そして、キャッシュマニフェストが個々のファイルを発行するようになりましたdebug=true.

どうやら、MSDN のドキュメントは現在の安定版リリースと同期していないようです。

于 2013-02-14T19:10:49.683 に答える