2014-09-12 8 views
5

Ho sviluppato un'applicazione Web MVC5 per diversi mesi. Ho pubblicato su ciascuno dei 3 server utilizzati per lo sviluppo, i test e il server pubblico previsto. Tutto è stato testato da un team di una dozzina di beta tester e in questo fine settimana è stata presa la decisione di andare in diretta con l'app web.Percorsi relativi in ​​CSS non validi quando si utilizza MVC con pacchetti

Prima di pubblicare l'app Web sull'host live (pubblico) ho modificato il web.config per disabilitare la modalità di debug per il sito pubblico. Dopo la pubblicazione, sono venuti fuori tutti i tipi di problemi relativi alle risorse CSS e JS mancanti.

Dopo aver letto un sacco di articoli riguardanti Pacchetti e 404 errori, ho trovato uno che ha suggerito di aggiungere il seguente al web.config:

<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="BundleModule" /> 
    <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> 
</modules> 

Questo risolto i 404 problemi per le configurazioni StyleBundle e ScriptBundle, ma ora ho 404 errori per le immagini che in precedenza funzionavano bene. Non sono sicuro del modo migliore per risolverli. Non voglio spostare le immagini e non voglio modificare i CSS poiché questi sono file di distribuzione (jQueryUI, ThemeRoller, DataTables, ecc.). Voglio lasciare la loro struttura della cartella di distribuzione e i file di origine originali (CSS e JS) non modificati.

Un esempio del problema.

distribuzione DataTable è nella mia cartella ~/Scripts:

/Scripts/DataTables-1.10.2/ 
/Scripts/DataTables-1.10.2/media/css 
/Scripts/DataTables-1.10.2/media/images 
/Scripts/DataTables-1.10.2/media/js 

Bundle di configurazione:

bundles.Add(new ScriptBundle("~/bundles/DataTables").Include(
    "~/Scripts/DataTables-1.10.2/media/js/jquery.dataTables.js")); 

bundles.Add(new StyleBundle("~/bundles/DataTables.css").Include(
    "~/Scripts/DataTables-1.10.2/media/css/jquery.dataTables.css")); 

jquery.dataTables.css contiene riferimenti a ../images/someimage.png e con il Web .config debug mode abilitato funziona perfettamente. Ora che la modalità di debug è stata disabilitata e bundle sono minifying/combinando, sto ottenendo 404 errori:

http://example.com/GenericError.htm?aspxerrorpath=/images/someimage.png" 

Sembra come se l'URL dell'immagine è ormai presume essere relativo a/Bundles/- anche se non sono positivo.

Ci deve essere una configurazione aggiuntiva che mi manca. Qualcuno può indicarmi la giusta direzione?

EDIT

commenti di Raffaello su questa questione e il suo URL a un'altra domanda simile in modo non hanno contribuito a risolvere il problema. La raccomandazione di Sean su BundleTransformer sembra funzionare, ma non trovo documentazione su come installare questo pacchetto.

+0

Ho letto articoli su questo problema per 6 ore. Internet e SO sono caricati con loro. Alcuni articoli non hanno alcun senso per me. Non hanno nemmeno accettato le risposte. Esaminerò il collegamento che hai fornito: non puoi semplicemente indicare una possibile risposta senza la polizia per i duplicati? E 'solo strano ... – rwkiii

+0

Raphael, hai mai considerato quante volte hai detto "Possibile duplicato ...". Il tuo duplice controllo diventa problematico e ridondante di per sé. Diventa molto vecchio. Non fermerai i duplicati. Ho fatto la mia domanda in un modo diverso con esempi di differenze.Con la tua reputazione sembrerebbe che ci sia qualcuno, da qualche parte su SO con una domanda che è appropriata per te rispondere? – rwkiii

+1

Grazie per aver ingombrato la mia domanda con il tuo punto di vista sui duplicati. Pensavi davvero che avresti ricevuto un "grazie" da parte mia per aver commentato tutto ciò che riguardava questa domanda e incoraggiare l'aiuto potenziale per chiudere la mia domanda? Torna coi piedi per terra. Hai fatto 4 commenti qui ora. Tanti come me, ma i tuoi commenti sono inutili e distruttivi. – rwkiii

risposta

4

Vedere la mia risposta a: CSS/JS bundle in single file in mvc when publish with release option

Si occupa di questo problema esatto e le opzioni che si hanno per risolverlo.

+0

@Sean Amos, BundleTransformer sembra una possibile opzione per me. Le opzioni 1 e 2 sono opzioni che devo assolutamente evitare. Grazie ancora. Non ho visto BundleTransformer menzionato altrove. – rwkiii

Problemi correlati