1

我曾经在 .js 中有一个 .js 文件/Public/javascripts/jquery1.1js

一切正常,但后来我需要从我的项目中删除这个文件,所以我只是从 Visual Studio 的解决方案中删除了它。

现在,当我访问我的应用程序时,我得到:

“~/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" />

如果是这样,请删除该行。Cassette 使用这些参考来确定构建顺序。

参考: 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 回答