ASP.NET Web Pages - Папки
В этой главе рассказывается о папках и путях к папкам.
В этой главе вы узнаете:
- Логическая структура папок и физическая структура папок
- Виртуальные имена и физические имена
- Веб-URL-адреса и веб-пути
Логическая структура папок
Ниже представлена типичная структура папок веб-сайта ASP.NET:

- Папка «Account» содержит файлы входа и безопасности
- Папка «App_Data» содержит базы данных и файлы данных
- Папка "Images" содержит изображения
- Папка "Scripts" содержит браузерные скрипты
- Папка "Shared" содержит общие файлы (такие как файлы макета и стилей)
Физическая структура папок
Физическая структура папки "Images" на компьютере для вышеуказанного веб-сайта может выглядеть так:
C:\Documents\MyWebSites\Demo\Images
Виртуальные и физические имена
Возьмём приведённый выше пример:
Виртуальное имя изображения веб-сайта может быть "Images/pic31.jpg".
Соответствующее физическое имя — "C:\Documents\MyWebSites\Demo\Images\pic31.jpg".
URL-адреса и пути
URL-адреса используются для доступа к файлам на веб-сайте:http://www.example.com/html/html-tutorial.html
URL соответствует физическому файлу на сервере: C:\MyWebSites\example\html\html-tutorial.html
Виртуальный путь — это сокращённое представление физического пути. Если вы используете виртуальные пути, вам не нужно обновлять пути при смене доменных имён или переносе веб-страниц на другие серверы.
| URL | http://www.example.com/html/html-tutorial.html |
| Имя сервера | EXAMPLE |
| Виртуальный путь | /html/html-tutorial.html |
| Физический путь | C:\MyWebSites\example\html\html-tutorial.html |
Корень диска записывается как C:, а корень веб-сайта — как / (косая черта).
Виртуальный путь веб-папки обычно не совпадает с физической папкой.
В своём коде решайте, использовать физические или виртуальные пути, исходя из ваших потребностей в программировании.
В ASP.NET есть 3 средства для путей к папкам: оператор ~, метод Server.MapPath и метод Href.
Оператор ~
Используйте оператор ~ для указания виртуальных путей в программном коде.
Если вы используете оператор ~, вам не нужно изменять какой-либо код при перемещении сайта в другую папку или расположение:
var myStyleSheet = "~/styles/StyleSheet.css";
Метод Server.MapPath
Метод Server.MapPath преобразует виртуальный путь (/index.html) в физический путь, понятный серверу (C:\Documents\MyWebSites\Demo\default.html).
Когда вам нужно открыть файлы данных на сервере, вы можете использовать этот метод (к файлам данных можно получить доступ только при указании полного физического пути):
var fileName = Server.MapPath(pathName);
В следующей главе этого руководства вы узнаете больше о чтении (и записи) файлов данных на сервере.
Метод Href
Метод Href преобразует пути, используемые в коде, в пути, которые могут понять браузеры (браузеры не понимают оператор ~).
Вы можете использовать метод Href для создания путей к ресурсам (таким как файлы изображений и CSS-файлы).
Этот метод обычно используется в элементах <a>, <img> и <link> в HTML:
<!-- Это создаёт ссылку на CSS-файл. -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet).html" />
<!-- То же, что и : -->
<link rel="stylesheet" type="text/css" href="../Shared/Site.css.html" />
Метод Href является методом объекта WebPage.
Другие расширения