ASP.NET Web Pages - Carpeta

Este capítulo introduce carpetas y rutas de carpetas.

En este capítulo, aprenderá:

  • Estructura de carpetas lógica y física
  • Nombres virtuales y físicos
  • URL y rutas web

Estructura de carpetas lógica

A continuación, se muestra la estructura de carpetas típica de una página web ASP.NET:

Estructura de carpetas de Páginas Web
  • La carpeta "Account" contiene archivos de inicio de sesión y seguridad
  • La carpeta "App_Data" contiene bases de datos y archivos de datos
  • La carpeta "Images" contiene imágenes
  • La carpeta "Scripts" contiene scripts del navegador
  • La carpeta "Shared" contiene archivos comunes (por ejemplo, archivos de diseño y estilo)

Estructura de archivos físicos

La estructura física del directorio "Images" de este sitio web en el ordenador es similar a esto:

C:\Johnny\Documents\MyWebSites\Demo\Images

Nombres virtuales y físicos

Según el ejemplo anterior:

El nombre virtual de la imagen web es similar a esto: "Images/pic31.jpg".

Pero los nombres físicos son similares a esto: "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg".

URL y rutas

El URL se utiliza para acceder a los archivos desde la web:

http://www.codew3c.com/html5/html5_intro.asp

El archivo correspondiente al URL en el servidor es:

C:\MyWebSites\htm5\html5_intro.asp

La ruta virtual es una forma abreviada de representar la ruta física. Si utiliza la ruta virtual, puede mover la página web a un dominio (o servidor) diferente sin actualizar la ruta.

URL	http://www.codew3c.com/html/html5_intro.asp
Nombre del servidor	codew3c
Ruta virtual	/html/html5_intro.asp
Ruta física	C:\MyWebSites\codew3c\/html/html5_intro.asp

El directorio raíz en el disco del drive se escribe: C:\, pero el directorio raíz en el sitio web es / (guion oblicuo).

La ruta virtual del directorio web nunca será la misma que la carpeta física (casi nunca).

En su código, según el contenido del código, puede que se refieran tanto a rutas físicas como a rutas virtuales al mismo tiempo.

ASP.NET proporciona tres herramientas para manejar rutas de carpetas: el operador ~, el método Server.MapPath y el método Href.

Operador ~

Para especificar el directorio raíz virtual en el código de programación, utilice el operador ~.

Si utiliza el operador ~ en lugar de la ruta, puede mover el sitio web a una carpeta o ubicación diferente sin cambiar ningún código:

var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";

Método Server.MapPath

El método Server.MapPath convierte la ruta virtual (/default.cshtml) en la ruta física que el servidor puede entender (C:\Johnny\MyWebSited\Demo\default.cshtml).

Usted usará este método cuando necesite abrir un archivo de datos ubicado en el servidor (los archivos de datos solo se pueden acceder a través de la ruta física completa):

var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);

En el siguiente capítulo de este tutorial, aprenderá más sobre cómo leer y escribir archivos de datos en el servidor.

Método Href

El método Href convierte las rutas en el código en rutas que el navegador puede entender (el navegador no entiende el operador ~).

Usted utiliza el método Href para crear rutas a recursos (como imágenes y archivos CSS).

Usted usará este método con frecuencia en los elementos HTML <a>、<img> y <link>:

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- Crear un enlace a un archivo CSS -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- Idéntico : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

El método Href pertenece a los métodos del objeto WebPage.