7

Quiero entender completamente cómo usar la dirección url relativa y absoluta en archivos estáticos y dinámicos.obteniendo la URL base de la raíz del sitio web (URL absoluta/relativa)

~ : 
/: 
.. : 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 

Este ejemplo es fácil cuando se trabaja sin un directorio virtual. Pero estoy trabajando en el directorio virtual.

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 

Quiero simular un sitio a continuación, como mi proyecto que está trabajando en el directorio virtual.

Estos son mi carpeta de aspx y ascx

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 

Estos son mis archivos JS (que se utiliza tanto con los archivos aspx y ascx):

http://hostAddress:port/virtualDirectory/MainSite/JavascriptFolder/jsFile.js 
http://hostAddress:port/virtualDirectory/AdminSite/JavascriptFolder/jsFile.js 

esta es mi página web estática dirección (quiero mostrar algunas fotos y ejecutarse dentro de algunas funciones JS):

http://hostAddress:port/virtualDirectory/HTMLFiles/page.html 

esta es mi imagen pliegue er

http://hostAddress:port/virtualDirectory/Images/PNG/arrow.png 
http://hostAddress:port/virtualDirectory/Images/GIF/arrow.png 

si quiero escribir y enlace del archivo de imagen en mi archivo ASPX que debería escribir

aspxImgCtrl.ImageUrl = Server.MapPath("~")+"/Images/GIF/arrow.png"; 

Pero si quiero escribir el camino codificado duro o desde un archivo de JavaScript, qué tipo de URL dirección debe ser?

Respuesta

7

El operador ~ es reconocido por asp.net solo para los controles del servidor y en el código del servidor. No puede usar el operador ~ para elementos del cliente.

referencias de ruta absolutas y relativas en un control de servidor tienen las siguientes desventajas:

• Las rutas absolutas no son portátiles entre aplicaciones. Si mueve la aplicación a la que apunta la ruta absoluta, los enlaces se romperán.

• Las rutas relativas en el estilo de los elementos del cliente pueden ser difíciles de mantener si mueve recursos o páginas a diferentes carpetas.

Para superar estas desventajas, ASP.NET incluye el operador raíz de la aplicación web (~), que puede usar al especificar una ruta en los controles del servidor. ASP.NET resuelve el ~ operador a la raíz de la aplicación actual. Puede usar el operador ~ junto con las carpetas para especificar una ruta basada en la raíz actual.

Como por el ejemplo que registró

aspxImgCtrl.ImageUrl = Server.MapPath("~")+"/Images/GIF/arrow.png"; 

el código anterior hará que la ruta física del servidor (por ejemplo, - c: \ inetpub \ wwwroot \ mysite \ imágenes \ gif \ arrow.png", que es lo que significa menos en el lado del cliente,

se debe utilizar esto para la correcta cliente ruta relativa:

aspxImgCtrl.ImageUrl = "~/Images/GIF/arrow.png"; 

para hacer referencia a los recursos de javascript es posible que desee considerar un folde un nivel estructura rs para unificar rutas de acceso.por ejemplo:

  • Páginas
  • JS
  • Pix
  • etc ...

Para más detalles visita asp.net web site paths

Cuestiones relacionadas