0

私はミックスにかなり慣れていないので、.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 側で何かを構成していないため、このエラーが発生していますか?

アドバイスをいただければ幸いです。

ありがとうございました

4

1 に答える 1

0

Durandal composition.js をさらに掘り下げたところ、「tryActivate」関数の skipActivation パラメータが定義されていないことがわかり、エラーが発生しました。この問題は、Durandal による IE8 サポートの結果であると確信しているので、先に進んで IE8 を破棄し、現在 IE9 以降向けに開発しています。

これは修正ではありませんが、私はこれで十分に頭が痛いので、先に進みます...

于 2015-04-22T20:47:15.860 に答える