หน้าเว็บ ASP.NET - โฟลเดอร์
บทนี้เกี่ยวกับโฟลเดอร์และเส้นทางของโฟลเดอร์
ในบทนี้ คุณจะได้เรียนรู้:
- เกี่ยวกับโครงสร้างโฟลเดอร์แบบลอจิคัลและฟิสิคัล
- เกี่ยวกับชื่อเสมือนและชื่อจริง
- เกี่ยวกับ URL ของเว็บและเส้นทาง
โครงสร้างโฟลเดอร์ลอจิก
ด้านล่างนี้คือโครงสร้างโฟลเดอร์ทั่วไปสำหรับเว็บไซต์ ASP.NET:
- โฟลเดอร์ "บัญชี" ประกอบด้วยไฟล์การเข้าสู่ระบบและความปลอดภัย
- โฟลเดอร์ "App_Data" ประกอบด้วยฐานข้อมูลและไฟล์ข้อมูล
- โฟลเดอร์ "รูปภาพ" มีรูปภาพ
- โฟลเดอร์ "สคริปต์" มีสคริปต์ของเบราว์เซอร์
- โฟลเดอร์ "แชร์" มีไฟล์ทั่วไป (เช่น ไฟล์เลย์เอาต์และสไตล์)
โครงสร้างฟิสิคัลโฟลเดอร์
โครงสร้างทางกายภาพสำหรับโฟลเดอร์ "Images" ที่เว็บไซต์ด้านบนอาจมีลักษณะดังนี้บนคอมพิวเตอร์:
C:\Johnny\Documents\MyWebSites\Demo\Images
ชื่อเสมือนและทางกายภาพ
จากตัวอย่างข้างต้น:
ชื่อเสมือนของรูปภาพบนเว็บอาจเป็น "Images/pic31.jpg"
แต่ชื่อจริงคือ "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"
URL และเส้นทาง
URL ใช้เพื่อเข้าถึงไฟล์จากเว็บ: https://www.w3schools.com/html/html5_intro.asp
URL สอดคล้องกับไฟล์จริงบนเซิร์ฟเวอร์: C:\MyWebSites\w3schools\html\html5_intro.asp
เส้นทางเสมือนเป็นการจดชวเลขเพื่อแสดงถึงเส้นทางจริง หากคุณใช้เส้นทางเสมือน คุณสามารถย้ายเพจของคุณไปยังโดเมนอื่น (หรือเซิร์ฟเวอร์) โดยไม่ต้องอัปเดตเส้นทาง
URL | https://www.w3schools.com/html/html5_intro.asp |
ชื่อเซิร์ฟเวอร์ | w3schools |
เส้นทางเสมือน | /html/html5_intro.asp |
เส้นทางทางกายภาพ | C:\MyWebSites\w3schools\html\html5_intro.asp |
รูทบนดิสก์ไดรฟ์เขียนเหมือน C:\ แต่รูทบนเว็บไซต์คือ / (ฟอร์เวิร์ดสแลช)
เส้นทางเสมือนของโฟลเดอร์เว็บ (เกือบ) ไม่เหมือนกับโฟลเดอร์ที่มีอยู่จริง
ในโค้ดของคุณ คุณจะต้องอ้างอิงทั้งเส้นทางจริงและเส้นทางเสมือน ขึ้นอยู่กับสิ่งที่คุณกำลังเขียนโค้ด
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);
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการอ่าน (และการเขียนถึง) ไฟล์ข้อมูลบนเซิร์ฟเวอร์ในบทต่อไปของบทช่วยสอนนี้
วิธีการ Href
เมธอด Href จะแปลงพาธที่ใช้ในโค้ดเป็นพาธที่เบราว์เซอร์เข้าใจได้ (เบราว์เซอร์ไม่เข้าใจโอเปอเรเตอร์ ~)
คุณใช้เมธอด Href เพื่อสร้างพาธไปยังทรัพยากร เช่น ไฟล์รูปภาพ และไฟล์ 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.