ในบทนี้จะเป็นเรื่องเกี่ยวกับโฟลเดอร์และเส้นทางโฟลเดอร์
ในบทนี้คุณจะได้เรียนรู้:
- เกี่ยวกับตรรกะและทางกายภาพโครงสร้างโฟลเดอร์
- เกี่ยวกับชื่อทางกายภาพและเสมือน
- เกี่ยวกับ URL ของเว็บและเส้นทาง
โครงสร้างโฟลเดอร์ตรรกะ
ด้านล่างเป็นโครงสร้างโฟลเดอร์ทั่วไปสำหรับหน้าเว็บเว็บไซต์ ASP.NET:
- "Account" โฟลเดอร์มีการเข้าสู่ระบบและความปลอดภัยของไฟล์
- "App_Data" โฟลเดอร์มีฐานข้อมูลและไฟล์ข้อมูล
- "Images" โฟลเดอร์มีภาพ
- "Scripts" โฟลเดอร์มีสคริปต์เบราว์เซอร์
- "Shared" โฟลเดอร์มีไฟล์ที่พบบ่อย (like layout and style files)
โครงสร้างโฟลเดอร์ที่มีอยู่จริง
โครงสร้างทางกายภาพสำหรับ "Images" โฟลเดอร์ที่เว็บไซต์ดังกล่าวข้างต้นอาจมีลักษณะเช่นนี้บนคอมพิวเตอร์:
C: \ จอห์นนี่ \ Documents \ MyWebSites \ สาธิต \ แสดงสินค้า
ทางกายภาพและเสมือนชื่อ
จากตัวอย่างข้างต้น:
ชื่อเสมือนของภาพเว็บอาจจะมี "Images/pic31.jpg"
แต่ชื่อทางกายภาพคือ "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"
URLs และเส้นทาง
URL ที่จะใช้ในการเข้าถึงไฟล์จากเว็บ: http://www.w3ii.com/html/html5_intro.asp
URL นี้สอดคล้องกับแฟ้มที่มีอยู่จริงบนเซิร์ฟเวอร์: C: \ MyWebSites \ w3ii \ HTML \ html5_intro.asp
เส้นทางเสมือนจดชวเลขจะเป็นตัวแทนของเส้นทางทางกายภาพ ถ้าคุณใช้เส้นทางเสมือนคุณสามารถย้ายหน้าเว็บของคุณไปยังโดเมนที่แตกต่างกัน (or server) โดยไม่ต้องมีการปรับปรุงเส้นทาง
URL | http://www.w3ii.com/html/html5_intro.asp |
ชื่อเซิร์ฟเวอร์ | w3ii |
เส้นทางเสมือน | /html/html5_intro.asp |
เส้นทางกายภาพ | C: \ MyWebSites \ w3ii \ HTML \ html5_intro.asp |
รากบนดิสก์ไดรฟ์เป็นลายลักษณ์อักษรเช่น C: \ แต่รากบนเว็บไซต์เป็น / (forward slash)
เส้นทางเสมือนของโฟลเดอร์เว็บเป็น (almost) ไม่เคยเป็นเช่นเดียวกับโฟลเดอร์ที่มีอยู่จริง
ในรหัสของคุณคุณจะอ้างอิงทั้งทางกายภาพและเส้นทางเส้นทางเสมือนขึ้นอยู่กับสิ่งที่คุณกำลังเข้ารหัส
ASP.NET มี 3 เครื่องมือสำหรับการทำงานกับเส้นทางโฟลเดอร์: ผู้ประกอบการ ~ วิธี 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);
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการอ่านจาก (and writing to) ไฟล์ข้อมูลบนเซิร์ฟเวอร์ในบทต่อไปของการกวดวิชานี้
วิธี Href
วิธีการแปลง Href เส้นทางที่ใช้ในรหัสไปยังเส้นทางที่เบราว์เซอร์สามารถเข้าใจ (the browser cannot understand the ~ operator)
คุณใช้วิธีการ Href เพื่อสร้างเส้นทางไปยังทรัพยากรเช่นไฟล์ภาพและไฟล์ CSS
คุณมักจะใช้วิธีการนี้ใน <a> HTML, <img> และ <link> องค์ประกอบ:
@{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"
/>
วิธี Href เป็นวิธีการของวัตถุที่หน้าเว็บ