私はミックスにかなり慣れていないので、.NET 4.0 の Breeze/Durandal 2 の経験のある人がこのエラーで私を支援できることを願っています。
私は、Durandal 2/KO/Require SPA プロジェクトに取り組んでおり、最近はうまくコンパイルされ、IIS7 で実行されています。このアプリは IE8 と互換性がある必要があるため、shim および sham js ライブラリを次のようにインポートしました。
<!-- ECMAScript 5 compatibility shims for IE8 -->
<!--[if lt IE 9]>
<script src="lib/ie8/html5shiv.min.js"></script>
<script src="lib/ie8/respond.js"></script>
<script src="lib/ie8/es5-shim.min.js"></script>
<script src="lib/ie8/es5-sham.min.js"></script>
<![endif]-->
<script src="lib/jquery/jquery-1.9.1.min.js"></script>
<script src="lib/knockout/knockout-3.1.0.js"></script>
<script src="/Scripts/q.min.js"></script>
<script src="/Scripts/breeze.debug.js"></script>
<script src="lib/bootstrap/js/bootstrap.js"></script>
また、DB からデータにアクセスできるようにする必要があるため、BreezeJS をミックスに追加してみました。Breeze のドキュメントによると、これを機能させるには、空のテンプレートを使用して VS でプロジェクトを ASP.NET MVC4 プロジェクトとして作り直す必要がありました。その後、NuGet を使用して Breeze ファイルをインポートしました。
Install-Package Breeze.WebApi
次に、既存のビュー、コントローラー、ライブラリ、css などを新しく作成したプロジェクトに追加しました。IE8 を使用してコンパイルすると、次のエラーが発生します。このエラーは、Firefox または Chrome では表示されません。
Unhandled exception at line 125, column 13 in
http://localhost:64185/lib/durandal/js/composition.js
(Edited for readability)
SourceMap D:\localdev\TestMVC4\TestMVC4\lib\ie8\es5-shim.map read failed:
Could not find file 'D:\localdev\TestMVC4\TestMVC4\lib\ie8\es5-shim.map'.
SourceMap D:\localdev\TestMVC4\TestMVC4\lib\ie8\es5-sham.map read failed:
Could not find file 'D:\localdev\TestMVC4\TestMVC4\lib\ie8\es5-sham.map'.
Unhandled exception at line 125, column 13 in http://localhost:64185/lib/durandal/js/composition.js
0x800a138f - Microsoft JScript ランタイム エラー: 「ルート」が null またはオブジェクトではありません
これは JQuery との互換性の問題かもしれないと思ったので、別のバージョンを試してみました。DocType が次のように設定されていることを確認しました。
<!DOCTYPE html>
そして、私は次のメタタグを持っています:
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
ただし、これらのいずれかが IE8 と Durandal で問題を引き起こすとは思えません。他の誰かが私と同様の問題を経験しましたか? MVC4 側で何かを構成していないため、このエラーが発生していますか?
アドバイスをいただければ幸いです。
ありがとうございました