erste Basis-url der Website Stamm (absolute/relative url)
Möchte ich völlig verstehen, wie relative und absolute url-Adresse in statische und dynamische Dateien.
~ :
/ :
.. : in a relative URL indicates the parent directory
. : refers to the current directory
/ : always replaces the entire pathname of the base URL
//: always replaces everything from the hostname onwards
Diesem Beispiel ist einfach, wenn Sie arbeiten, ohne virtuelles Verzeichnis. Aber ich arbeite auf virtuelles Verzeichnis.
Relative URI Absolute URI
about.html http://WebReference.com/html/about.html
tutorial1/ http://WebReference.com/html/tutorial1/
tutorial1/2.html http://WebReference.com/html/tutorial1/2.html
/ http://WebReference.com/
//www.internet.com/ http://www.internet.com/
/experts/ http://WebReference.com/experts/
../ http://WebReference.com/
../experts/ http://WebReference.com/experts/
../../../ http://WebReference.com/
./ http://WebReference.com/html/
./about.html http://WebReference.com/html/about.html
Möchte ich simulieren, die eine Website unten, wie mein Projekt, die arbeiten auf virtuelles Verzeichnis.
Diese sind meiner aspx-und ascx-Ordner
http://hostAddress:port/virtualDirectory/MainSite/ASPX/default.aspx
http://hostAddress:port/virtualDirectory/MainSite/ASCX/UserCtrl/login.ascx
http://hostAddress:port/virtualDirectory/AdminSite/ASPX/ASCX/default.aspx
Diese sind meine JS-Dateien(die für den Einsatz sowohl mit der aspx-und ascx-Dateien):
http://hostAddress:port/virtualDirectory/MainSite/JavascriptFolder/jsFile.js
http://hostAddress:port/virtualDirectory/AdminSite/JavascriptFolder/jsFile.js
dies ist meine statische web-Seiten-Adresse(ich möchte ein paar Bilder und laufen in einigen js-Funktionen):
http://hostAddress:port/virtualDirectory/HTMLFiles/page.html
dies ist mein image-Ordner
http://hostAddress:port/virtualDirectory/Images/PNG/arrow.png
http://hostAddress:port/virtualDirectory/Images/GIF/arrow.png
wenn ich schreiben will und image-Datei-link in meiner ASPX-Datei, die ich schreiben sollte
aspxImgCtrl.ImageUrl = Server.MapPath("~")+"/Images/GIF/arrow.png";
Aber wenn ich schreiben will, den Pfad hart codiert oder aus javascript-Datei, welche Art von url-Adresse soll es sein?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ~ operator wird erkannt durch asp.net nur für die server-controls und im server-code. Sie können nicht mit dem ~ - operator für die client-Elemente.
Absoluten und relativen Pfad verweist in einem server-control haben die folgenden Nachteile:
•Absolute Pfade sind nicht portabel zwischen verschiedenen Anwendungen. Wenn Sie die Anwendung verschieben, die den absoluten Pfad der Punkte an, die links zu brechen.
•Relative Pfade im Stil von client-Elementen kann schwierig sein zu pflegen, wenn Sie verschieben Sie Ressourcen oder Seiten in verschiedenen Ordnern.
Zur überwindung dieser Nachteile, ASP.NET enthält die Web-Anwendung root-operator (~), die Sie verwenden können, wenn Sie einen Pfad angeben in der server-Steuerelemente. ASP.NET löst den ~ - operator mit dem Stamm der aktuellen Anwendung. Sie können den ~ - operator in Verbindung mit Ordnern, um einen Pfad angeben, der auf der Grundlage der aktuellen Wurzel.
Als für das Beispiel, das du gepostet
den obigen code, wird das Rendern der physikalischen server-Pfad (zum Beispiel - c:\inetpub\wwwroot\mysite\images\gif\arrow.png" die Bedeutung weniger auf der client-Seite,
sollten Sie diese für die richtige client-relativen Pfad:
Referenz-Ressourcen von javascript, die Sie betrachten wünschen können, eine Ebene Ordner-Struktur zu vereinheitlichen, auf Pfade zugreifen. zum Beispiel:
Für weitere details besuchen Sie asp.net web site paths