Páginas da Web ASP.NET - Pastas
Este capítulo é sobre pastas e caminhos de pastas.
Neste capítulo você aprenderá:
- Sobre estruturas de pastas lógicas e físicas
- Sobre nomes virtuais e físicos
- Sobre URLs e Caminhos da Web
Estrutura lógica de pastas
Abaixo está uma estrutura de pastas típica para um site de páginas da Web ASP.NET:
- A pasta "Conta" contém arquivos de logon e segurança
- A pasta "App_Data" contém bancos de dados e arquivos de dados
- A pasta "Imagens" contém imagens
- A pasta "Scripts" contém scripts de navegador
- A pasta "Shared" contém arquivos comuns (como arquivos de layout e estilo)
Estrutura de Pasta Física
A estrutura física da pasta "Imagens" no site acima pode ficar assim em um computador:
C:\Johnny\Documents\MyWebSites\Demo\Images
Nomes virtuais e físicos
Do exemplo acima:
O nome virtual de uma imagem da web pode ser "Images/pic31.jpg".
Mas o nome físico é "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"
URLs e caminhos
URLs são usados para acessar arquivos da web: https://www.w3schools.com/html/html5_intro.asp
A URL corresponde a um arquivo físico em um servidor: C:\MyWebSites\w3schools\html\html5_intro.asp
Um caminho virtual é uma abreviação para representar caminhos físicos. Se você usar caminhos virtuais, poderá mover suas páginas para um domínio (ou servidor) diferente sem precisar atualizar os caminhos.
URL | https://www.w3schools.com/html/html5_intro.asp |
Nome do servidor | w3escolas |
Caminho virtual | /html/html5_intro.asp |
Caminho físico | C:\MyWebSites\w3schools\html\html5_intro.asp |
A raiz em uma unidade de disco é escrita como C:\, mas a raiz em um site é / (barra).
O caminho virtual de uma pasta da Web (quase) nunca é o mesmo que a pasta física.
Em seu código, você fará referência ao caminho físico e ao caminho virtual, dependendo do que estiver codificando.
ASP.NET tem 3 ferramentas para trabalhar com caminhos de pastas: o operador ~, o método Server.MapPath e o método Href.
O ~Operador
Para especificar a raiz virtual no código de programação, use o operador ~.
Se você usar o operador ~, em vez de um caminho, poderá mover seu site para uma pasta ou local diferente sem alterar nenhum código:
var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";
O método Server.MapPath
O método Server.MapPath converte um caminho virtual (/default.cshtml) em um caminho físico que o servidor possa entender (C:\Johnny\MyWebSited\Demo\default.cshtml).
Você usará este método quando precisar abrir arquivos de dados localizados no servidor (os arquivos de dados só podem ser acessados com um caminho físico completo):
var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);
Você aprenderá mais sobre como ler (e gravar em) arquivos de dados no servidor no próximo capítulo deste tutorial.
O Método Href
O método Href converte um caminho usado no código em um caminho que o navegador possa entender (o navegador não pode entender o operador ~).
Você usa o método Href para criar caminhos para recursos como arquivos de imagem e arquivos CSS.
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.