В этой главе представлена информация о папках и путях к папкам.
В веб-страницах ASP.NET существует две структуры папок: логическая структура папок и физическая структура папок.
В этой главе вы узнаете:
Логическая структура папок и физическая структура папок
Виртуальные и физические имена
Веб-URL-адреса и веб-пути
Ниже приведена типичная структура папок веб-сайта ASP.NET:
В папке «Аккаунт» находятся файлы логина и безопасности.
Папка «App_Data» содержит файлы базы данных и данных.
В папке «Изображения» находятся изображения.
В папке «Сценарии» содержатся скрипты браузера.
Папка «Общие» содержит общие файлы (например, файлы макетов и стилей).
Физическая структура папки «Изображения» на указанном выше веб-сайте на вашем компьютере может быть следующей:
C:DocumentsMyWebSitesDemoImages
Возьмите пример выше:
Виртуальным именем изображения веб-сайта может быть «Images/pic31.jpg».
Соответствующее физическое имя — «C:DocumentsMyWebSitesDemoImagespic31.jpg».
URL-адрес используется для доступа к файлам на веб-сайте: //www.w3cschool.cn/html/html-tutorial.html.
URL-адрес соответствует физическому файлу на сервере: C:MyWebSitesw3cschoolhtmlhtml-tutorial.html.
Виртуальный путь — это сокращенное представление физического пути. Если вы используете виртуальные пути, вам не нужно обновлять пути при изменении доменных имен или перемещении веб-страниц на другие серверы.
URL-адрес | //www.w3cschool.cn/html/html-tutorial.html |
Имя сервера | w3cschool |
виртуальный путь | /html/html-tutorial.html |
физический путь | C:MyWebSitesw3cschoolhtmlhtml-tutorial.html |
Корневой каталог жесткого диска записывается как C:, а корневой каталог веб-сайта — / (косая черта).
Виртуальный путь к веб-папке обычно отличается от физической папки.
В своем коде выбирайте между физическими и виртуальными путями в зависимости от ваших потребностей в кодировании.
Существует три инструмента для путей к папкам ASP.NET: оператор ~, метод Server.MapPath и метод Href.
Используйте оператор ~ для указания виртуальных путей в программном коде.
Если вы используете оператор ~, вы можете переместить свой сайт в другую папку или место, не меняя никакого кода:
var myImagesFolder = "~/images"; var myStyleSheet = "~/styles/StyleSheet.css";
Метод Server.MapPath преобразует виртуальный путь (/index.html) в физический путь, понятный серверу (C:DocumentsMyWebSitesDemodefault.html).
Если вам нужно открыть файл данных на сервере, вы можете использовать этот метод (доступ к файлу данных можно получить только путем предоставления полного физического пути):
вар PathName = "~/dataFile.txt"; вар FileName = Server.MapPath(pathName);
В следующей главе этого руководства вы узнаете больше о чтении (и записи) файлов данных на сервере.
Метод Href преобразует путь, используемый в коде, в путь, понятный браузеру (браузер не понимает оператор ~).
Вы можете использовать метод Href для создания путей к ресурсам, таким как файлы изображений и файлы CSS.
Этот метод обычно используется внутри элементов <a>, <img> и <link> в HTML:
@{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.