2012-04-10 3 views
1

Раньше у меня был .js-файл в /Public/javascripts/jquery1.1js.Cassette.AssetReferenceException увольняется при удалении файла из папки

Все работает отлично, но тогда мне нужно было удалить этот файл из моего проекта, поэтому я просто удалил его из решения в Visual Studio.

Теперь, когда я посещаю мое приложение, я получаю:

Reference ошибка в "~/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».

Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения более информации об ошибке и ее месте в коде.

Сведения об исключении: 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».

Вот StackTrace:

[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: " 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.

 Смежные вопросы

  • Нет связанных вопросов^_^