Pagine Web ASP.NET - Cartelle


Questo capitolo riguarda le cartelle ei percorsi delle cartelle.


In questo capitolo imparerai:

  • Informazioni sulle strutture di cartelle logiche e fisiche
  • Informazioni sui nomi virtuali e fisici
  • Informazioni su URL e percorsi web

Struttura logica delle cartelle

Di seguito è riportata una tipica struttura di cartelle per un sito Web di pagine Web ASP.NET:

Cartelle
  • La cartella "Account" contiene i file di accesso e di sicurezza
  • La cartella "App_Data" contiene database e file di dati
  • La cartella "Immagini" contiene immagini
  • La cartella "Script" contiene gli script del browser
  • La cartella "Condivisa" contiene file comuni (come file di layout e di stile)

Struttura delle cartelle fisiche

La struttura fisica per la cartella "Immagini" nel sito Web sopra potrebbe essere simile a questa su un computer:

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


Nomi virtuali e fisici

Dall'esempio sopra:

Il nome virtuale di un'immagine web potrebbe essere "Images/pic31.jpg".

Ma il nome fisico è "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"



URL e percorsi

Gli URL vengono utilizzati per accedere ai file dal Web: https://www.w3schools.com/html/html5_intro.asp

L'URL corrisponde a un file fisico su un server: C:\MyWebSites\w3schools\html\html5_intro.asp

Un percorso virtuale è un'abbreviazione per rappresentare percorsi fisici. Se utilizzi percorsi virtuali, puoi spostare le tue pagine su un dominio (o server) diverso senza dover aggiornare i percorsi.

URL https://www.w3schools.com/html/html5_intro.asp
Nome del server w3scuole
Percorso virtuale /html/html5_intro.asp
Percorso fisico C:\MyWebSites\w3schools\html\html5_intro.asp

La radice su un'unità disco è scritta come C:\, ma la radice su un sito Web è / (barra).

Il percorso virtuale di una cartella Web non è (quasi) mai uguale a quello della cartella fisica.

Nel tuo codice farai riferimento sia al percorso fisico che al percorso virtuale, a seconda di cosa stai codificando.

ASP.NET dispone di 3 strumenti per lavorare con i percorsi delle cartelle: l'operatore ~, il metodo Server.MapPath e il metodo Href.


L'operatore ~

Per specificare la radice virtuale nel codice di programmazione, utilizzare l'operatore ~.

Se utilizzi l'operatore ~, invece di un percorso, puoi spostare il tuo sito Web in una cartella o posizione diversa senza modificare alcun codice:

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

Il metodo Server.MapPath

Il metodo Server.MapPath converte un percorso virtuale (/default.cshtml) in un percorso fisico che il server può comprendere (C:\Johnny\MyWebSited\Demo\default.cshtml).

Utilizzerai questo metodo quando devi aprire file di dati che si trovano sul server (è possibile accedere ai file di dati solo con un percorso fisico completo):

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

Imparerai di più sulla lettura (e sulla scrittura) dei file di dati sul server nel prossimo capitolo di questo tutorial.


Il metodo Href

Il metodo Href converte un percorso utilizzato nel codice in un percorso che il browser può comprendere (il browser non può comprendere l'operatore ~).

Utilizzare il metodo Href per creare percorsi a risorse come file di immagine e file 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.