2009-05-30 4 views
6

Sto sviluppando un'applicazione ASP .Net MVC e sulla mia macchina di sviluppo, l'applicazione funziona come previsto e, cosa più importante, le immagini menzionate nel file CSS vengono visualizzate correttamente pure.ASP .Net MVC - Immagini non mostrate nella build pubblicata

Tuttavia, quando pubblico questa applicazione su un server di prova, l'app Web funziona correttamente, ma le immagini non vengono visualizzate.

Se si modifica l'URL in IE durante il test dell'output dal server di test, l'immagine viene restituita, il che significa che il file è presente ma non verrà visualizzato nella pagina di visualizzazione quando si utilizza il sito normalmente.

Ho provato anche server alternativi, ma il risultato è lo stesso.

Per confermare, ecco una linea dalla pagina CSS riferimento l'immagine ...

background-image: url('/Content/Images/Logo/myLogo.jpg'); 

Qualche suggerimento?

Acclamazioni

Brett

risposta

19

Gli URL non sono corretti, probabilmente dovuto al fatto che si sta pubblicando in una sottocartella e quindi non sono più alla radice del server. Io di solito uso Url.Content("~/Content/Images/...") per creare l'URL invece di codificarlo. In questo modo terrà conto dei percorsi durante la costruzione del percorso.

Esempio:

<img src='<%= Url.Content("~/Content/Images/banner.jpg") %>' alt="Banner" /> 
1

possibili percorsi relativi sono sbagliato ... Possibile che si sbagliano per il file CSS sé. Puoi usare FireBug per vedere se il CSS è caricato correttamente, quindi puoi esaminare la richiesta di immagine, spesso in tali situazioni vedrai elementi rossi (errori). Questo potrebbe aiutare a localizzare il problema.

+0

Buon piano - Scaricherò FireFox e FireBug e vedrò se questo aiuta. –

0

Perché questo deve essere fatto ... sto finendo il mio progetto e ora devo passare attraverso un cambiamento di tutto questo formato! Tutto il mio javascript sta fallendo, tutte le mie immagini stanno fallendo! Per qualche strana ragione il mio css va bene, ma perché diamine non è più documentato !? Url.Content non compare nemmeno sotto l'intellisense! ASP MVC ha appena perso un punto della mia scala d'amore.

coder --molto frustrato

3

ho avuto lo stesso problema, ma ho trovato il motivo per cui stava costringendo l'autenticazione sulla cartella Contents.

Quando un utente non ha ancora effettuato l'accesso, viene classificato come Autenticazione anonima. In IIS7 (che è quello che sto usando, supponendo che sia lo stesso in IIS6) è necessario aprire la finestra di autenticazione nella vista delle funzionalità. Quindi modifica l'autenticazione anonima, per utilizzare l'identità del pool di applicazioni o quella predefinita, ma assicurati che l'utente abbia le autorizzazioni per leggere in quella cartella.

Questo lo ha risolto per me, spero che funzioni per voi.