2009-05-30 14 views
6

Pracuję nad aplikacją ASP .Net MVC i na moim komputerze, aplikacja działa zgodnie z oczekiwaniami i, co ważniejsze, obrazy wymienione w pliku CSS są wyświetlane poprawnie także.ASP .Net MVC - Obrazy nie są wyświetlane w opublikowanej kompilacji

Jednak po opublikowaniu tej aplikacji na serwerze testowym aplikacja internetowa działa poprawnie, ale obrazy nie są wyświetlane.

Jeśli zmodyfikuję adres URL w IE podczas testowania danych wyjściowych z serwera testowego, obraz zostanie zwrócony, co oznacza, że ​​plik istnieje, ale po prostu nie pojawi się na stronie widoku podczas normalnego korzystania z witryny.

Próbowałem też alternatywnych serwerów, ale wynik jest taki sam.

Aby potwierdzić, tutaj jest wiersz ze strony CSS odwołującego obraz ...

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

sugestie?

Cheers

Brett

Odpowiedz

19

Adresy URL nie są prawidłowe, prawdopodobnie ze względu na fakt, że publikujesz w podfolderze i tak nie są już w katalogu głównym serwera. Zwykle używam Url.Content("~/Content/Images/...") do budowania adresu URL zamiast kodowania go na stałe. W ten sposób uwzględni trasy podczas budowania ścieżki.

Przykład:

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

Możliwe ścieżki względne są błędne ... możliwe, że są one źle dla samego pliku CSS. Możesz użyć FireBug, aby sprawdzić, czy CSS został załadowany poprawnie, następnie możesz sprawdzić żądanie obrazu, często w takich sytuacjach zobaczysz czerwone (błąd) przedmioty. To może pomóc zlokalizować problem.

+0

Dobry plan - pobiorę FireFox i FireBug i zobaczę, czy to pomaga. –

0

Dlaczego to trzeba zrobić ... kończąc mój projekt, a teraz muszę przejść przez zmianę wszystkiego w tym formacie! Cały mój javascript zawodzi, wszystkie moje obrazy zawodzą! Z jakiegoś dziwnego powodu moje css jest w porządku, ale dlaczego nie jest to bardziej udokumentowane !? Url.Content nawet nie pojawia się pod intellisense! ASP MVC właśnie straciło punkt w mojej skali miłości.

--very sfrustrowany koder

3

miałem ten sam problem, ale znalazłem powód dlaczego to było wymuszanie uwierzytelniania na zawartość folderu.

Gdy użytkownik nie jest jeszcze zalogowany, jest klasyfikowany jako anonimowe uwierzytelnianie. W IIS7 (który jest tym, czego używam, zgadując, że jest taki sam w IIS6) musisz otworzyć okno uwierzytelniania w widoku funkcji. Następnie edytuj uwierzytelnianie anonimowe, aby użyć tożsamości puli aplikacji lub domyślnej, po prostu upewnij się, że użytkownik ma uprawnienia do czytania w tym folderze.

Naprawiłem to dla mnie, mam nadzieję, że zadziała.

Powiązane problemy