ASP.NET Web Pages - папка

Эта глава знакомит с папками и путями к папкам.

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

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

Логическая файловая структура

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

Структура папки Web Pages
  • Папка "Account" содержит файлы входа и безопасности
  • Папка "App_Data" содержит базы данных и файлы данных
  • Папка "Images" содержит изображения
  • Папка "Scripts" содержит скрипты браузера
  • Папка "Shared" содержит общие файлы (например, файлы макета и стилей)

Физическая файловая структура

Физическая структура папки "Images" на этом веб-сайте на компьютере подобна такому:

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

Виртуальные и физические имена

На основе примера выше:

Виртуальное имя веб-изображения подобно такому: "Images/pic31.jpg".

Но физическое имя подобно такому "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg".

URL и путь

URL используется для доступа к файлам с веб-сайта:

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

Файл, соответствующий URL на сервере:

C:\MyWebSites\htm5\html5_intro.asp

Виртуальный путь - это краткая форма физического пути. Если вы используете виртуальный путь, вы можете переместить веб-страницу в другое доменное имя (или сервер) без обновления пути.

URL	http://www.codew3c.com/html/html5_intro.asp
Имя сервера	codew3c
Виртуальный путь	/html/html5_intro.asp
Физический путь	C:\MyWebSites\codew3c\/html/html5_intro.asp

Корневой каталог на дисковом накопителе пишется: C:\, но корневой каталог на веб-сайте пишется / (прямая черта).

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

В вашем коде, в зависимости от содержания кода, может быть одновременно использован физический путь и виртуальный путь.

ASP.NET предоставляет три инструмента для обработки путей к папкам: оператор ~, метод 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 преобразует пути в коде в пути, которые понимает браузер (браузер не понимает оператор ~).

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

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

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- Создание ссылки на файл CSS -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- Точно так же : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

Метод Href принадлежит методам объекта WebPage.