2012-04-10 4 views
1

gelöscht wurde Ich hatte eine .js-Datei in /Public/javascripts/jquery1.1js.Cassette.AssetReferenceException wird ausgelöst, wenn eine Datei aus dem Ordner

Alles funktionierte perfekt, aber dann musste ich diese Datei aus meinem Projekt löschen, also entfernte ich es einfach aus der Lösung in Visual Studio. Jetzt

wenn ich meine Bewerbung besuchen, erhalte ich:

Referenz Fehler in "~/Public/Javascripts/jquery.unobtrusive-ajax.js", Linie 1 nicht gefunden „~/Public/javascripts/jquery-1.5.1.js ". Referenz Fehler in "~/Public/javascripts/jquery.validate.unobtrusive.js", Zeile 1. Kann "~/Public/javascripts/jquery-1.5.1.js" nicht finden.

Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für mehr Informationen über den Fehler und wo es im Code entstanden ist.

Ausnahmedetails: Cassette.AssetReferenceException: Referenzfehler in "~/Public/Javascripts/jquery.unobtrusive-ajax.js", Linie 1. Kann nicht find „~/Public/Javascripts/jquery-1.5.1. js ". Referenzfehler in "~/Public/javascripts/jquery.validate.unobtrusive.js", Zeile 1. Kann nicht finden "~/Public/javascripts/jquery-1.5.1.js".

Hier ist ein 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 

Zugegeben, ich wissen, warum dies geschieht, Kassette noch die gelöschte Datei versucht, zu finden, aber ich bin nicht sicher, wie Kassette zu sagen: " Hey, this file is no longer relevant. Scan the folder again and rebuild a list of files you need to work with. "

Aber ich weiß einfach nicht, wie dies zu erreichen ist.

Die documentation hat keine Erwähnung davon und bedeutet nur, dass es das automatisch für mich tun soll.

Hier ist meine Konfiguration Klasse:

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/"); 
     } 
    } 
} 

Und in meiner _Layout.cshtml Datei:

@{ 
    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> 

Antwort

2

Ist die jquery.validate.unobtrusive.js Datei enthält eine JavaScript-Referenz an der Spitze jquery-1.5.1.js?

Die Linie würde wie folgt aussehen:

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

Wenn ja, diese Zeile entfernen. Kassette verwendet diese Referenzen, um die Erstellungsreihenfolge zu bestimmen.

ref: http://getcassette.net/documentation/scripts

0

Dies kann auch passieren, wenn Sie Dateien mit der gleichen Wurzel

z Referenz easyXDM.js und easyXDM.debug.js

Wenn Sie auf easyXMD.js verweisen, gibt es die Ausnahme und die Lösung scheint eine andere Namenskonvention zu verwenden, die sicherstellt, dass die Wurzeln unterschiedlich sind, wie easyXMDdebug.js.

Verwandte Themen