ASP.NET-Webseiten - Ordner
In diesem Kapitel geht es um Ordner und Ordnerpfade.
In diesem Kapitel lernen Sie:
- Informationen zu logischen und physischen Ordnerstrukturen
- Über virtuelle und physische Namen
- Über Web-URLs und Pfade
Logische Ordnerstruktur
Unten sehen Sie eine typische Ordnerstruktur für eine ASP.NET-Website:
- Der Ordner „Konto“ enthält Anmelde- und Sicherheitsdateien
- Der Ordner „App_Data“ enthält Datenbanken und Datendateien
- Der Ordner „Images“ enthält Bilder
- Der Ordner „Scripts“ enthält Browser-Scripts
- Der Ordner „Shared“ enthält allgemeine Dateien (wie Layout- und Stildateien)
Physische Ordnerstruktur
Die physische Struktur für den Ordner „Images“ auf der obigen Website könnte auf einem Computer folgendermaßen aussehen:
C:\Johnny\Dokumente\MeineWebSites\Demo\Bilder
Virtuelle und physische Namen
Aus obigem Beispiel:
Der virtuelle Name eines Webbildes könnte "Images/pic31.jpg" sein.
Aber der physische Name ist "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"
URLs und Pfade
URLs werden verwendet, um auf Dateien aus dem Internet zuzugreifen: https://www.w3schools.com/html/html5_intro.asp
Die URL entspricht einer physischen Datei auf einem Server: C:\MyWebSites\w3schools\html\html5_intro.asp
Ein virtueller Pfad ist eine Abkürzung, um physische Pfade darzustellen. Wenn Sie virtuelle Pfade verwenden, können Sie Ihre Seiten auf eine andere Domain (oder einen anderen Server) verschieben, ohne die Pfade aktualisieren zu müssen.
URL | https://www.w3schools.com/html/html5_intro.asp |
Servername | w3schools |
Virtueller Pfad | /html/html5_intro.asp |
Physikalischer Weg | C:\MyWebSites\w3schools\html\html5_intro.asp |
Das Stammverzeichnis auf einem Laufwerk wird wie C:\ geschrieben, aber das Stammverzeichnis auf einer Website ist / (Schrägstrich).
Der virtuelle Pfad eines Webordners ist (fast) nie identisch mit dem physischen Ordner.
In Ihrem Code verweisen Sie sowohl auf den physischen Pfad als auch auf den virtuellen Pfad, je nachdem, was Sie codieren.
ASP.NET verfügt über drei Tools zum Arbeiten mit Ordnerpfaden: den ~-Operator, die Server.MapPath-Methode und die Href-Methode.
Der ~-Operator
Um das virtuelle Stammverzeichnis im Programmiercode anzugeben, verwenden Sie den Operator ~.
Wenn Sie den Operator ~ anstelle eines Pfads verwenden, können Sie Ihre Website in einen anderen Ordner oder an einen anderen Ort verschieben, ohne Code zu ändern:
var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";
Die Server.MapPath-Methode
Die Server.MapPath-Methode konvertiert einen virtuellen Pfad (/default.cshtml) in einen physischen Pfad, den der Server verstehen kann (C:\Johnny\MyWebSited\Demo\default.cshtml).
Sie verwenden diese Methode, wenn Sie Datendateien öffnen müssen, die sich auf dem Server befinden (auf Datendateien kann nur mit einem vollständigen physischen Pfad zugegriffen werden):
var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);
Im nächsten Kapitel dieses Tutorials erfahren Sie mehr über das Lesen (und Schreiben) von Datendateien auf dem Server.
Die Href-Methode
Die Href-Methode konvertiert einen im Code verwendeten Pfad in einen Pfad, den der Browser verstehen kann (der Browser kann den ~-Operator nicht verstehen).
Sie verwenden die Href-Methode, um Pfade zu Ressourcen wie Bilddateien und CSS-Dateien zu erstellen.
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.