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>
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。