ASP.NET Web Pages - Папки


В этой главе рассказывается о папках и путях к папкам.


В этой главе вы узнаете:

  • Логическая структура папок и физическая структура папок
  • Виртуальные имена и физические имена
  • Веб-URL-адреса и веб-пути

Логическая структура папок

Ниже представлена типичная структура папок веб-сайта ASP.NET:

Folders
  • Папка «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 myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";


Метод Server.MapPath

Метод Server.MapPath преобразует виртуальный путь (/index.html) в физический путь, понятный серверу (C:\Documents\MyWebSites\Demo\default.html).

Когда вам нужно открыть файлы данных на сервере, вы можете использовать этот метод (к файлам данных можно получить доступ только при указании полного физического пути):

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

В следующей главе этого руководства вы узнаете больше о чтении (и записи) файлов данных на сервере.


Метод Href

Метод Href преобразует пути, используемые в коде, в пути, которые могут понять браузеры (браузеры не понимают оператор ~).

Вы можете использовать метод Href для создания путей к ресурсам (таким как файлы изображений и CSS-файлы).

Этот метод обычно используется в элементах <a>, <img> и <link> в HTML:

@{var myStyleSheet = "~/Shared/Site.css";}

<!-- Это создаёт ссылку на CSS-файл. -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet).html" />

<!-- То же, что и : -->
<link rel="stylesheet" type="text/css" href="../Shared/Site.css.html" />

Метод Href является методом объекта WebPage.


Другие расширения