Cassette.AssetReference从文件夹中删除文件时触发异常

本文关键字:异常 文件 删除 AssetReference 文件夹 Cassette | 更新日期: 2023-09-27 18:30:43

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

一切都运行良好,但随后我需要从项目中删除此文件,因此我只是将其从 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 请求。请查看堆栈跟踪以获取更多信息 有关错误及其在代码中起源位置的信息。

异常

详细信息:盒式磁带。资产引用异常:引用错误 在"~/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

当然,我知道为什么会发生这种情况,盒式磁带仍在尝试查找已删除的文件,但我不确定如何告诉卡带:"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>

Cassette.AssetReference从文件夹中删除文件时触发异常

jquery.validate.unobtrusive.js文件是否在顶部包含 JavaScript 引用以jquery-1.5.1.js

该行如下所示:

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

如果是这样,请删除该行。盒式磁带使用这些引用来确定构建顺序。

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

如果您引用具有相同根目录的文件,也会发生这种情况

例如easyXDM.js和easyXDM.debug.js

当您引用easyXMD时.js它会给出异常,解决方案似乎是使用不同的命名约定来确保根不同,例如easyXMDdebug.js。