2010-04-21 13 views
8

PozdrowieniaBrak stylów/obrazów w aplikacji asp.Net MVC 2

Mam mały problem z moją aplikacją ASP MVC. Na moim lokalnym serwerze programistycznym wszystko działa dobrze, ale gdy próbuję opublikować aplikację na serwerze IIS 7.0, wyświetla ona zwykłe strony bez żadnych stylów/znaczników/obrazów.

umieścić wszystkie te rzeczy w/content/podfolderu ale gdy próbuję uzyskać dostęp do tego folderu na serwerze produkcyjnym to właśnie zwraca mi 404 nie znaleziono błąd.

ustawić serwer IIS z .NET 4.0 i następnie przewodnik wdrażania tutaj: http://www.asp.net/learn/mvc/tutorial-08-cs.aspx

wszystkich widokach/kontrolery/klas wydają się działać dobrze, jedyną rzeczą, która nie jest podfolder i zawartość Nie widzę dlaczego.

Ktoś dostał propozycję co mogłem przeoczyć lub nie każdy wie, że problem?

+0

Co się stanie, jeśli spróbujesz przejść bezpośrednio do plików CSS z przeglądarki? –

+0

404'd również ... – xenolf

+0

Jak odnosić się do statycznych plików? Relatywnie czy absolutnie? Jak skonfigurowana jest Twoja aplikacja w usługach IIS? Jako strona główna lub jako folder aplikacji w innej witrynie? –

Odpowiedz

0

sprawdzić właściwości folderów treści ... sprawdzić, czy nie są one „kopiowanie lokalnie” z jakiegoś powodu.

+1

Po prostu sprawdziłem, że ... wszystko jest kopiowane po prostu dobrze ... wygląda na to, że routing jest pomieszany z istniejącymi plikami. Czy używam domyślnego routingu, który powinien się tym zająć, czy też się mylę? – xenolf

2

Wynika to prawdopodobnie używasz stałą ścieżkę na src, jak: ../../Content/Styles/style.css. W MVC powinieneś użyć pomocnika Url: Url.Content("~/Content/Styles/style.css").

Użycie pomocnika Url nie powinno powodować problemów.

10

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

Gdy użytkownik nie jest zalogowany, ale są one klasyfikowane jako Anonymous uwierzytelniania. 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.

+0

Dziękuję Conner, że rozwiązałem mój problem – arame3333

+0

Dziękuję, prawdziwe rozwiązanie! – Tomas

1

Wyciągam włosy z tej nocy.

Na W2K8, MVC2, .NET 4.0 i IIS 7 (przy użyciu VS 2010)

upewnić się, że IIS_IUSRS miał pełne prawa do katalogu głównego, ale nadal nie go - css, js, obrazy nie jeszcze przed dostępem w renderingu stronę ....

a następnie .... więc prosta:

w mieście zobaczyć na witrynie - zdefiniowane typy MIME dla .css, .js i .jpg - i voila!

Słodka!

p.s. mój 1 MVC app - i myślę, że go lubić ...

3

Cóż, dodałem IIS_IUSR s do katalogu projektu i znaleźć ten sam problem:
CSS nie ładuje i nic z folderu zawartości .
Ale to rozwiązało problem z Unable to start debugging on the web server.
Następnie dodałem IUSR do tego samego folderu i to naprawiło problem.Teraz widzę obrazy, style css i wszystkie te rzeczy.

+0

kiedy udostępniłem moją stronę wwwroot forlder (dla innego użytkownika), to usunęło ustawienie IUSR! stracił kilka godzin na ten błąd. Dzięki. –

0

Folder wskazany przez katalog wirtualny nadał użytkownikowi właściwości odczytu "Wszystkie".