6

Wie kann ich JavaScript-Bündelung von einem anderen Ordner (abgesehen von dem Skript-Ordner) arbeiten lassen. Wenn ich das tue:Javascript-Bündelung in einem anderen Ordner

bundles.Add(new ScriptBundle("~/bundles/search").Include("~/Views/Search/*.js")); 

Der Browser sagt mir, dass die Javascript-Datei nicht gefunden werden kann. Ist es möglich, dies zu tun oder müssen alle meine Skripte im Ordner Skripte sein?

Grundsätzlich möchte ich meine Javascript in meiner Ansicht Unterordner enthalten

+0

Warum würden Sie das tun? Die Skripte gehen aus einem Grund in den Skriptordner. Organisation. – Trucktech

+2

Das Konzept der Organisation ist für jeden anders. Manche Menschen organisieren sich gerne nach Farbe, andere organisieren gerne nach Alphabet, ... Ich möchte, dass sich mein Javascript im selben Ordner befindet wie die Ansicht, auf der sie verwendet werden. – PoeHaH

+0

Ich würde empfehlen, einen Ordner "Assets" in Ihrem Stammordner zu verwenden. Ich verwende normalerweise "assets/css", "assets/scss", "assets/js" und "assets/images". – janhartmann

Antwort

3

Sie müssen nach dieser Antwort web.config in Views Ordner ändern: In ASP.NET MVC, how can I load script from my view folder?

Gutes Beispiel von Ashley Lee:

<system.webServer> 
    <handlers> 
    <add name="JavascriptViewHandler" path="*.js" verb="*" 
     preCondition="integratedMode" type="System.Web.StaticFileHandler" /> 
    <remove name="BlockViewHandler"/> 
    <add name="BlockViewHandler" path="*" verb="*" 
     preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 
</system.webServer> 
+0

Sie sollten hier die relevanten Teile der Antwort mit der Frage einbeziehen (anstatt eine andere Quelle anzugeben). Es gibt einen Grund für einen Stack-Überlauf, nur für diese Übertretung. So funktioniert Stack Overflow. – jww

+0

Vielen Dank! Sparte mir viel Zeit. – user3413723

0

I Ich weiß nicht, ob ich Ihre Frage richtig verstanden habe, aber wenn Sie eine Skriptdatei aus einem beliebigen Ordner in einer Ansicht oder vorzugsweise in ihrem Layout verwenden möchten, können Sie das hinzufügen folgenden Tag in <head> Abschnitt von Ihnen View oder _Layout.cshtml:

<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script> 

Sie können den vollständigen Pfad zur Skriptdatei erwähnen statt ~/Scripts/jquery-ui.min.js

1

Da Sie speziell nur einschließen möchten Javascript-Dateien, die folgende Änderung vornehmen zu Ihre ~/Views/web.config Datei, indem Sie den Abschnitt "JavascriptViewHandler" hinzufügen.

<system.webServer> 
    <handlers> 
    <add name="JavascriptViewHandler" path="*.js" verb="*" 
     preCondition="integratedMode" type="System.Web.StaticFileHandler" /> 
    <remove name="BlockViewHandler"/> 
    <add name="BlockViewHandler" path="*" verb="*" 
     preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 
</system.webServer> 

Dadurch wird die gesamte aktuelle Blockierung für Nicht-Javascript-Dateien beibehalten.