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:

Ordner
  • 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.