1

以前は.jsファイルをに持っていました/Public/javascripts/jquery1.1js

すべてが完全に機能していましたが、プロジェクトからこのファイルを削除する必要があったため、VisualStudioのソリューションから削除しました。

アプリケーションにアクセスすると、次のようになります。

「〜/ Public / javascripts / jquery.unobtrusive-ajax.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。「〜/ Public / javascripts / jquery.validate.unobtrusive.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとそれがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:Cassette.AssetReferenceException:「〜/ Public / javascripts / jquery.unobtrusive-ajax.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。「〜/ Public / javascripts / jquery.validate.unobtrusive.js」の1行目の参照エラー。「〜/ Public / javascripts/jquery-1.5.1.js」が見つかりません。

スタックトレースは次のとおりです。

[AssetReferenceException: Reference error in "~/Public/javascripts/jquery.unobtrusive-ajax.js", line 1. Cannot find "~/Public/javascripts/jquery-1.5.1.js".
Reference error in "~/Public/javascripts/jquery.validate.unobtrusive.js", line 1. Cannot find "~/Public/javascripts/jquery-1.5.1.js".]
   Cassette.BundleContainer.ValidateAssetReferences() +387
   Cassette.BundleContainer..ctor(IEnumerable`1 bundles) +41

確かに、なぜこれが起こっているのかはわかっています。Cassetteはまだ削除されたファイルを見つけようとしていますが、Cassetteに伝える方法がわかりません: " Hey, this file is no longer relevant. Scan the folder again and rebuild a list of files you need to work with."

しかし、私はこれを達成する方法がわかりません。

ドキュメントにはこれについての言及はなく、私のためにこれを自動的に行う必要があることを示唆しているだけです。

これが私の構成クラスです:

using Cassette.Configuration;
using Cassette.Scripts;
using Cassette.Stylesheets;

namespace XXX.WebUI
{
    /// <summary>
    /// Configures the Cassette asset modules for the web application.
    /// </summary>
    public class CassetteConfiguration : ICassetteConfiguration
    {
        public void Configure(BundleCollection bundles, CassetteSettings settings)
        {
            bundles.AddPerIndividualFile<ScriptBundle>("Public/javascripts/");
            bundles.AddPerIndividualFile<StylesheetBundle>("Public/stylesheets/");
        }
    }
}

そして私の_Layout.cshtmlファイルでは:

@{
    Bundles.Reference("Public/javascripts/site.js");
    Bundles.Reference("Public/javascripts/jquery.validate.unobtrusive.js");
    Bundles.Reference("Public/stylesheets/site.less");
}
<!DOCTYPE html>
    ...

    <head>
        <title>@ViewBag.Title</title>
        @Bundles.RenderStylesheets()

            ...
        @Bundles.RenderScripts()
    </body>
4

2 に答える 2

2

jquery.validate.unobtrusive.jsファイルの上部にJavaScript参照が含まれていますjquery-1.5.1.jsか?

行は次のようになります。

 /// <reference path="jquery-1.5.1.js" />

その場合は、その行を削除します。カセットは、これらの参照を使用してビルドの順序を決定します。

参照:http://getcassette.net/documentation/scripts

于 2012-04-11T22:18:19.857 に答える
0

これは、同じルートを持つファイルを参照する場合にも発生する可能性があります

例:easyXDM.jsおよびeasyXDM.debug.js

easyXMD.jsを参照すると例外が発生し、解決策は、easyXMDdebug.jsなど、ルートが異なることを保証する別の命名規則を使用しているようです。

于 2013-07-10T16:58:47.433 に答える