2012-04-10 73 views
1

我曾在/Public/javascripts/jquery1.1js中拥有.js文件。从文件夹中删除文件时会触发Cassette.AssetReferenceException

一切都工作完美,但后来我需要从我的项目中删除此文件,所以我刚刚从Visual Studio中的解决方案中删除它。

现在,当我访问我的申请,我得到:在

引用错误 “〜/公共/ Java脚本/ jquery.unobtrusive-ajax.js”, 1号线无法找到“〜/公共/ Java脚本/ jQuery的1.5.1.js”。参考 错误“〜/ Public/javascripts/jquery.validate.unobtrusive.js”,行 1.无法找到“〜/ Public/javascripts/jquery-1.5.1.js”。

描述:在执行 当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:Cassette.AssetReferenceException:引用错误 在 “〜/公共/ Java脚本/ jquery.unobtrusive-ajax.js”,第1行无法找到 “〜/公共/ Java脚本/ 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.

但我只是不知道如何做到这一点。

documentation没有提到这一点,只是意味着它应该为我自动做到这一点。

这里是我的配置类:

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> 

回答

2

是否jquery.validate.unobtrusive.js文件包含在顶部的JavaScript参考jquery-1.5.1.js

行看起来像:

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

如果是这样,删除了这一行。卡带使用这些参考来确定构建顺序。

裁判:http://getcassette.net/documentation/scripts

0

如果引用与同根

例如文件,这也发生easyXDM.js和easyXDM.debug。js

当您引用easyXMD.js时,它提供了异常,并且解决方案似乎使用了不同的命名约定,以确保根目录不同,如easyXMDdebug.js。