ASP.NET Web Pages - Pasta

Este capítulo introduz pastas e caminhos de pastas.

Nesta seção, você aprenderá:

  • Estrutura lógica e física de pasta
  • Nomes virtuais e físicos
  • URL e caminho da web

Estrutura lógica de pasta

A seguir está a estrutura de pasta típica de páginas ASP.NET:

Estrutura de Pasta de Páginas da Web
  • A pasta "Account" contém arquivos de login e segurança
  • A pasta "App_Data" contém banco de dados e arquivos de dados
  • A pasta "Images" contém imagens
  • A pasta "Scripts" contém scripts do navegador
  • A pasta "Shared" contém arquivos comuns (por exemplo, arquivos de layout e estilo)

Estrutura de arquivo físico

A estrutura física da pasta "Images" neste site é semelhante a esta no computador:

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

Nomes virtuais e físicos

Segundo os exemplos acima:

O nome virtual da imagem da web é semelhante a este: "Images/pic31.jpg".

Mas o nome físico é semelhante a este: "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg".

URL e caminho

O URL é usado para acessar arquivos da web:

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

O arquivo correspondente ao URL no servidor é:

C:\MyWebSites\htm5\html5_intro.asp

O caminho virtual é uma abreviação que representa o caminho físico. Se você usar o caminho virtual, pode mover a página da web para um domínio (ou servidor) diferente sem atualizar o caminho.

URL	http://www.codew3c.com/html/html5_intro.asp
Nome do servidor	codew3c
Caminho virtual	/html/html5_intro.asp
Caminho físico	C:\MyWebSites\codew3c\/html/html5_intro.asp

O diretório raiz no disco rígido é escrito: C:\, mas o diretório raiz no site é / (barra).

O caminho virtual da pasta web nunca será o mesmo que a pasta física (quase).

No seu código, dependendo do conteúdo do código, pode haver referências simultâneas a caminhos físicos e virtuais.

ASP.NET oferece três ferramentas para lidar com caminhos de pastas: o operador ~, o método Server.MapPath e o método Href.

Operador ~

Para definir o diretório raiz virtual em código de programação, use o operador ~.

Se você usar o operador ~, em vez de caminhos, você pode mover o site para uma pasta ou localização diferente sem alterar nenhum código:

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

Método Server.MapPath

O método Server.MapPath converte o caminho virtual (/default.cshtml) em um caminho físico compreensível pelo servidor (C:\Johnny\MyWebSited\Demo\default.cshtml).

Você usará este método quando precisar abrir um arquivo de dados localizado no servidor (os arquivos de dados podem ser acessados apenas por meio de um caminho físico completo):

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

No próximo capítulo deste tutorial, você aprenderá mais sobre a leitura e escrita de arquivos de dados no servidor.

Método Href

O método Href converte caminhos de código em caminhos compreensíveis pelo navegador (o navegador não entende o operador ~).

Você usa o método Href para criar caminhos para recursos (como imagens e arquivos CSS).

Você usará este método frequentemente nos elementos HTML <a>, <img> e <link>:

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- Cria um link para o arquivo CSS -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- O mesmo que acima : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

O método Href pertence aos métodos do objeto WebPage.