ktoś wysłał mnie na link, aby pobrać próbki wzorcowej próbki ASP.NET MVC zauważyłem, że były 2 pliki web.config:dlaczego tam są 2 pliki web.config
- 1 w katalogu
- 1 w katalogu poglądów
Co jest tego powodem?
ktoś wysłał mnie na link, aby pobrać próbki wzorcowej próbki ASP.NET MVC zauważyłem, że były 2 pliki web.config:dlaczego tam są 2 pliki web.config
Co jest tego powodem?
web.config w katalogu widoków ma tylko jedną istotną pozycję, która blokuje bezpośredni dostęp:
<add path="*" verb="*"
type="System.Web.HttpNotFoundHandler"/>
Jest to więc ktoś nie można ręcznie spróbować iść do http://www.yoursite.com/views/main/index.aspx
i załadować stronę na zewnątrz rurociągu MVC.
@Rex do którego pliku muszę dodać ciąg połączenia –
@Pandiya root web.config, nie w katalogu Widoki (ani żadnego innego) –
@RexM: Ładne wyjaśnienie. Dzięki –
Możesz mieć wiele web.configs do definiowania różnych ustawień dla tego folderu. Używane dla uprawnień i innych podobnych rzeczy.
/Views/Web.config
To nie jest główny plik web.config swojej aplikacji. To właśnie zawiera dyrektywę instruowania serwera WWW nie służyć żadnych plików * aspx pod /widoki (ponieważ powinny one być wydanego przez sterownik, nie wywołany bezpośrednio jak klasyczne WebForms * .aspx plików). Plik ten zawiera także konfigurację potrzebną do poprawnego działania standardowego kompilatora stron ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET: przy użyciu składni szablonu ASP.NET MVC .
/Web.config
ten definiuje aplikacja konfiguracja.
To z książki Pro ASP.NET MVC
Co Silky wspomnianym wyjątkiem przeredagowany.
W środowisku ASP .NET dzieje się coś w stylu dziedziczenia dla plików konfiguracyjnych. Masz plik Machine.config w folderze ramowym .net, który ma podstawowe ustawienia dla wszystkich aplikacji na komputerze. Wszystko, co określisz w głównym pliku web.config z tymi samymi znacznikami, zastąpi elementy w pliku machine.config.
Każdy plik web.config w podfolderze może przesłonić lub dodać dodatkowe ustawienia w tym podfolderze i jego elementach podrzędnych.
To dla mnie zawsze zabawne, gdy jeden z moich nowych programistów umieszcza w folderze głównym program obsługi http, a następnie wszystkie aplikacje w katalogach wirtualnych pod nim eksplodują, ponieważ nie mają biblioteki DLL (one powinien umieścić instrukcję obsługi protokołu http tylko w aplikacji, która tego wymagała, a nie w katalogu głównym). :)
Zobacz także to pytanie [tutaj] (http://stackoverflow.com/q/23509617) dla nowszych wersji MVC, ta sama zasada. – StuartLC