6

Come posso utilizzare il raggruppamento di JavaScript da un'altra cartella (oltre alla cartella Script). Se faccio questo:Javascript bundling in un'altra cartella

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

Il browser indica che il file javascript non può essere trovato. È possibile fare questo o fare tutti i miei sripts devono essere nella cartella Scripts?

Fondamentalmente io voglio che il mio JavaScript incluso nel mio modo di vedere le sottocartelle

+0

Perché dovresti farlo? Gli script vanno nella cartella degli script per un motivo. Organizzazione. – Trucktech

+2

Il concetto di organizzazione è diverso per tutti. Ad alcune persone piace organizzare per colore, ad altri piace organizzare in ordine alfabetico, ... Mi piacerebbe che il mio javascript si trovasse nella stessa cartella della vista su cui saranno usati. – PoeHaH

+0

Si consiglia di utilizzare una cartella "risorse" nella cartella principale. Di solito uso "assets/css", "assets/scss", "assets/js" e "assets/images". – janhartmann

risposta

3

È necessario modificare web.config nella cartella Views secondo questa risposta: In ASP.NET MVC, how can I load script from my view folder?

buon esempio da 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

Dovresti includere le parti rilevanti della risposta qui con la domanda (piuttosto che citare un'altra fonte). C'è una stretta ragione per lo stack overflow solo per quella trasgressione. Ecco come funziona Stack Overflow. – jww

+0

Grazie mille! Mi ha salvato un sacco di tempo. – user3413723

0

I non so se ho capito bene la tua domanda, ma se vuoi usare un file di script da qualsiasi cartella in una vista o preferibilmente nel suo layout, puoi aggiungere il seguente tag in <head> sezione si View o _Layout.cshtml:

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

si può citare il percorso completo al file di script, invece di ~/Scripts/jquery-ui.min.js

1

Dal momento che si specificamente desidera includere solo i file JavaScript, apportare la seguente modifica alla il tuo file ~/Views/web.config, aggiungendo la sezione "JavascriptViewHandler".

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

Questo conserverà tutto il blocco corrente per i file non javascript.