3

サードパーティのJQueryプラグインを使用してMVC3アプリケーションでSquishIt使用すると、大量のエラーが発生します。私の開発マシンでは、BundleコマンドでForceDebugメソッドを設定すると、すべてが正常に機能し、JSは通常どおり処理されます。ただし、ForceReleaseメソッドを設定した場合(本番環境にロールアウトする前にテストするため)、サイトを起動すると、FireFoxは「機能ではありません」というエラーを表示します。web.configで設定を試みcompilation debug="true"ましたが、改善されていません。

これが私の_layout.cshtmlファイルのJS呼び出しです。すべてのバンドルは、標準のJQueryプラグイン用です。

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.18.custom.min.js")"></script>
@(Bundle.JavaScript()
    .Add("~/Scripts/modernizr-2.5.3.js")
    .Add("~/Scripts/jquery.fileinput.js")
    .Add("~/Scripts/jquery.numeric.js")
    .Add("~/Scripts/jquery.maskedinput-1.3.min.js")
    .Add("~/Scripts/jquery.maxlength_countdown.js")
    .Add("~/Scripts/jquery.qtip.min.js")
    .Add("~/Scripts/jquery.pnotify-1.1.0.min.js")
    .Add("~/Scripts/fileuploader.js")
    .Add("~/Scripts/jquery.dropdownchecklist-1.4.js")
    .Add("~/Scripts/jquery.blockUI.js")
    .Add("~/Scripts/jquery.textarearesizer.min.js")
    .ForceRelease()
    .MvcRender("~/CompiledContent/combined_#.js")
  )

これはFireFoxが表示するエラーのサンプルです。これは、バンドルに含まれているものに基づいて変更されます。

function (n) {var i = (n.browser.msie ? "paste" : "input") + ".mask", t = window.orientation != undefined;n.mask = {definitions: {9: "[0-9]", a: "[A-Za-z]", '*': "[A-Za-z0-9]"}, dataName: "rawMaskFn"}, n.fn.extend({caret: function (n, t) {if (this.length != 0) {if (typeof n == "number") {return t = typeof t == "number" ? t : n, this.each(function () ... YADDAYADDAYADDA-ここにさらに50行のスクリプト... function () {setTimeout(i, 0);})();}).bind("blur.mask", function () {v(), c.val() != p && c.change();}).bind("keydown.mask", nt).bind("keypress.mask", d).bind(i, function () {setTimeout(function () {c.caret(v(true));}, 0);}), v();});}});}(jQuery) is not a function

$(".dropdown-checklist").dropdownchecklist is not a function

私がここで台無しにしたかもしれないことについて何か考えはありますか?

4

1 に答える 1

8

以前にこのようなものに遭遇しました...ファイルの1つにjavascript関数の最後にセミコロンがないことがわかりました。これはあらゆる種類の大混乱を引き起こしました。この関数は、それ自体がファイルの場合は正常に機能しますが、結合するとセミコロンが違いを生みます。

ミニファイアをヌルミニファイアに設定して、それが作成する出力を表示することもできます。これは、さらにトラブルシューティングに役立つ場合があります。

于 2012-03-27T15:43:14.397 に答える