問題:
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 ファイルを発行し、 が の場合debug
はtrue
1 つのバンドル ファイルを発行することで、ページに対して適切に機能し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