ASP.NET Web Pages - โฟลเดอร์

บทนี้นำเสนอโฟลเดอร์และทางยังโฟลเดอร์:

ในบทนี้คุณจะเรียน:

  • โครงสร้างโฟลเดอร์โลจิกและทางจริง:
  • ชื่อทางเชิงเว็บและทางจริง
  • URL และทางยังเว็บ:

โครงสร้างโฟลเดอร์โลจิก:

ต่อไปนี้คือโครงสร้างโฟลเดอร์ทั่วไปของเว็บไซต์ ASP.NET:

โซมเพจ โฟลเดอร์โครงสร้าง
  • โฟลเดอร์ "Account" มีไฟล์เข้าระบบและไฟล์ความปลอดภัย:
  • โฟลเดอร์ "App_Data" มีฐานข้อมูลและไฟล์ข้อมูล:
  • โฟลเดอร์ "Images" มีรูปภาพ:
  • โฟลเดอร์ "Scripts" มีไซค์ริปของเบราเซอร์:
  • โฟลเดอร์ "Shared" มีไฟล์ทั่วไป (เช่นไฟล์ต้นแบบและไฟล์สไตล์):

โครงสร้างทางจริงของไฟล์

โครงสร้างทางจริงของโฟลเดอร์ "Images" ของเว็บนี้ในคอมพิวเตอร์คล้ายนี้:

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

ชื่อทางเชิงเว็บและทางจริง

จากตัวอย่างด้านบน:

ชื่อไฟล์เชิงเว็บของรูปภาพบนเว็บคล้ายนี้: "Images/pic31.jpg":

แต่ชื่อไฟล์ทางจริงคล้ายนี้ "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg":

URL และทางยัง

URL ใช้สำหรับการเข้าถึงไฟล์บนเว็บ:

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

URL ที่ตรงกับไฟล์บนเซิร์ฟเวอร์คือ:

C:\MyWebSites\htm5\html5_intro.asp

ทางยังโฟลเดอร์เชิงเว็บเป็นรูปแบบของทางยังโฟลเดอร์ทางจริง หากคุณใช้ทางยังโฟลเดอร์เชิงเว็บ คุณสามารถย้ายหน้าเว็บไปยังโดเมน (หรือเซิร์ฟเวอร์) ต่างๆ โดยไม่ต้องปรับปรุงทางยัง:

URL http://www.codew3c.com/html/html5_intro.asp
ชื่อเซิร์ฟเวอร์ codew3c
ทางยังโฟลเดอร์เชิงเว็บ /html/html5_intro.asp
ทางยังโฟลเดอร์ทางจริง C:\MyWebSites\codew3c\/html/html5_intro.asp

โฟลเดอร์หลักของดิสก์ไดรฟ์เขียนเป็น: C:\ แต่โฟลเดอร์หลักของเว็บคือ / (สลัก):

ทางยังโฟลเดอร์เชิงเว็บของโฟลเดอร์ web ไม่เหมือนกับโฟลเดอร์ทางจริง (เกือบจะไม่เหมือน):

ในรหัสโค้ดของคุณ จากการเข้าใจที่แตกต่างกัน อาจจะมีการอ้างถึงทางยังโฟลเดอร์ทางจริงและทางเชิงเว็บพร้อมกัน:

ASP.NET มีเครื่องมือสามชิ้นสำหรับการจัดการทางยังโฟลเดอร์: สัญญาณ ~ วิธี Server.MapPath และวิธี Href

สัญญาณ ~

ถ้าคุณต้องการกำหนดโฟลเดอร์หลักเชิงเว็บในรหัสโค้ด โปรดใช้สัญญาณ ~

หากคุณใช้สัญญาณ ~ แทนที่จะใช้ทางยังไม่ต้องเปลี่ยนรหัสโค้ดใดๆ คุณสามารถย้ายเว็บไซต์ไปยังโฟลเดอร์หรือตำแหน่งต่างๆ ได้:

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

วิธี Server.MapPath

วิธี Server.MapPath จะแปลงทางเดินทางที่เป็นสายประกาศ (/default.cshtml) ให้เป็นทางเดินทางที่เซิร์ฟเวอร์สามารถเข้ารับ (C:\Johnny\MyWebSited\Demo\default.cshtml):

คุณจะใช้วิธีนี้เมื่อต้องการเปิดไฟล์ข้อมูลที่ตั้งอยู่บนเซิร์ฟเวอร์ (ไฟล์ข้อมูลสามารถเข้าถึงได้เพียงด้วยทางเดินทางทางฟิสิกัลเท่านั้น):

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

ในบทเรียนต่อไปของนี้ คุณจะเรียนรู้เพิ่มเติมเกี่ยวกับการอ่านและเขียนไฟล์ข้อมูลบนเซิร์ฟเวอร์:

วิธี Href

วิธี Href จะแปลงทางเดินทางในรหัสเป็นทางเดินทางที่เบราวเซอร์สามารถเข้ารับ (เบราวเซอร์ไม่สามารถเข้ารับสัญลักษณ์ ~):

คุณใช้วิธี Href ที่จะสร้างทางเดินทางที่มุ่งหน้าไปยังทรัพยากร (เช่น รูปภาพและไฟล์ CSS):

คุณจะใช้วิธีนี้บ่อยครั้งใน HTML <a>、<img> และ <link> อีเลเมนต์:

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- สร้างลิงก์ที่มุ่งหน้าไปยังไฟล์ CSS -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- ซ้ำเดิม : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

วิธี Href นั้นเป็นวิธีของอ็อบเจกต์ WebPage