Веб-страницы ASP.NET — папки
Эта глава посвящена папкам и путям к ним.
В этой главе вы узнаете:
- О логических и физических структурах папок
- О виртуальных и физических именах
- О веб-URL-адресах и путях
Логическая структура папок
Ниже приведена типичная структура папок для веб-сайта веб-страниц ASP.NET:
- Папка «Учетная запись» содержит файлы входа в систему и файлы безопасности.
- Папка «App_Data» содержит базы данных и файлы данных.
- Папка «Изображения» содержит изображения
- Папка "Scripts" содержит скрипты браузера
- Папка «Общие» содержит общие файлы (например, файлы макетов и стилей).
Физическая структура папок
Физическая структура папки «Изображения» на указанном выше веб-сайте может выглядеть на компьютере следующим образом:
C:\Джонни\Документы\MyWebSites\Demo\Images
Виртуальные и физические имена
Из приведенного выше примера:
Виртуальное имя веб-изображения может быть «Images/pic31.jpg».
Но физическое имя "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"
URL-адреса и пути
URL-адреса используются для доступа к файлам из Интернета: https://www.w3schools.com/html/html5_intro.asp
URL-адрес соответствует физическому файлу на сервере: C:\MyWebSites\w3schools\html\html5_intro.asp.
Виртуальный путь — это сокращение для представления физических путей. Если вы используете виртуальные пути, вы можете переместить свои страницы в другой домен (или сервер) без необходимости обновлять пути.
URL-адрес | https://www.w3schools.com/html/html5_intro.asp |
Имя сервера | w3schools |
Виртуальный путь | /html/html5_intro.asp |
Физический путь | C:\MyWebSites\w3schools\html\html5_intro.asp |
Корень на диске записывается как C:\, но корень на веб-сайте — / (косая черта).
Виртуальный путь веб-папки (почти) никогда не совпадает с физической папкой.
В вашем коде вы будете ссылаться как на физический путь, так и на виртуальный путь, в зависимости от того, что вы кодируете.
В ASP.NET есть 3 инструмента для работы с путями к папкам: оператор ~, метод Server.MapPath и метод Href.
Оператор ~
Чтобы указать виртуальный корень в программном коде, используйте оператор ~.
Если вы используете оператор ~ вместо пути, вы можете переместить свой веб-сайт в другую папку или место без изменения кода:
var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";
Метод Server.MapPath
Метод Server.MapPath преобразует виртуальный путь (/default.cshtml) в физический путь, понятный серверу (C:\Johnny\MyWebSited\Demo\default.cshtml).
Вы будете использовать этот метод, когда вам нужно открыть файлы данных, расположенные на сервере (доступ к файлам данных возможен только с полным физическим путем):
var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);
Вы узнаете больше о чтении (и записи) файлов данных на сервере в следующей главе этого руководства.
Метод Хорфа
Метод Href преобразует путь, используемый в коде, в путь, понятный браузеру (браузер не может понять оператор ~).
Вы используете метод Href для создания путей к ресурсам, таким как файлы изображений и файлы CSS.
You will often use this method in HTML <a>, <img>, and <link> elements:
@{var myStyleSheet = "~/Shared/Site.css";}
<!-- This creates a link
to the CSS file. -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)"
/>
<!-- Same as : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css"
/>
The Href method is a method of the WebPage Object.