ASP.NET Web Pages - Folder

Ten rozdział wprowadza folder i ścieżki folderów.

W tym rozdziale nauczysz się:

  • Struktura folderów logicznych i fizycznych
  • Wirtualne i fizyczne nazwy
  • Web URL i ścieżka

Struktura folderów logicznych

Poniżej znajduje się typowa struktura folderów strony ASP.NET:

Struktura katalogu Strony internetowe
  • Folder "Account" zawiera pliki logowania i bezpieczeństwa
  • Folder "App_Data" zawiera bazy danych i pliki danych
  • Folder "Images" zawiera obrazy
  • Folder "Scripts" zawiera skrypty przeglądarki
  • Folder "Shared" zawiera ogólne pliki (np. pliki layout i style)

Struktura plików fizycznych

Fizyczna struktura folderu "Images" na tej stronie internetowej na komputerze wygląda podobnie do tego:

C:\Johnny\Documents\MyWebSites\Demo\Images

Wirtualne i fizyczne nazwy

Na podstawie powyższego przykładu:

Wirtualne nazwy obrazów są podobne do: "Images/pic31.jpg".

Ale fizyczne nazwy są podobne do "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg".

URL i ścieżka

URL jest używany do dostępu do plików z web:

http://www.codew3c.com/html5/html5_intro.asp

Plik, do którego odnosi się URL na serwerze, to:

C:\MyWebSites\htm5\html5_intro.asp

Wirtualna ścieżka to skrócona forma reprezentująca ścieżkę fizyczną. Jeśli używasz ścieżki wirtualnej, możesz przenieść stronę internetową do innego domeny (lub serwera) bez aktualizacji ścieżki.

URL	http://www.codew3c.com/html/html5_intro.asp
Nazwa serwera	codew3c
Ścieżka wirtualna	/html/html5_intro.asp
Ścieżka fizyczna	C:\MyWebSites\codew3c\/html/html5_intro.asp

Katalog główny na dysku twardym jest zapisywany jako: C:\, ale katalog główny na stronie internetowej to / (ukośnik).

Wirtualna ścieżka folderu web nigdy (prawie) nie jest taka sama jak folder fizyczny.

W Twoim kodzie, w zależności od treści kodu, możesz jednocześnie odnosić się do ścieżki fizycznej i wirtualnej.

ASP.NET oferuje trzy narzędzia do obsługi ścieżek folderów: operator ~, metodę Server.MapPath oraz metodę Href.

Operator ~

Aby określić w kodzie programowym wirtualny katalog główny, użyj operatora ~.

Jeśli używasz operatora ~ zamiast ścieżki, możesz przenieść stronę internetową do innego folderu lub miejsca bez zmiany żadnego kodu:

var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";

Metoda Server.MapPath

Metoda Server.MapPath konwertuje wirtualną ścieżkę (/default.cshtml) na fizyczną ścieżkę rozumianą przez serwer (C:\Johnny\MyWebSited\Demo\default.cshtml).

Używasz tej metody, gdy musisz otworzyć plik danych znajdujący się na serwerze (pliki danych można uzyskać tylko przez pełną fizyczną ścieżkę):

var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);

W następnym rozdziale tego kursu nauczysz się więcej o odczytywaniu i zapisywaniu plików danych na serwerze.

Metoda Href

Metoda Href konwertuje ścieżki w kodzie na ścieżki rozumiane przez przeglądarkę (przeglądarka nie rozumie operatora ~).

Używasz metody Href do tworzenia ścieżek do zasobów (np. obrazów i plików CSS).

Często używasz tej metody w elementach HTML <a>、<img> oraz <link>:

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- Tworzenie linku do pliku CSS -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- Tak samo : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

Metoda Href należy do metod obiektu WebPage.