มีหลายวิธีในการใช้หน้า HTML แบบคงที่ แต่ไม่ใช่ทุกคนที่รู้วิธีการใช้หน้าคงที่ ดังนั้นตอนนี้บรรณาธิการของ Foxin จะแนะนำวิธีการใช้หน้าคงที่ใน ASP เพื่อนที่สนใจมาดู
1. ใช้ isapi_rewrite เพื่อเชื่อมโยงแบบไดนามิกและเขียน URL แบบคงที่ HTML ใหม่ isapi_rewrite เป็นส่วนประกอบ DLL และ re_write เป็นโมดูลใน IIS การใช้งานตัวกรองนี้ใช้การแสดงออกปกติเพื่อทำแผนที่ URL เว็บแบบไดนามิกไปยัง URL แบบคงที่ ตัวอย่างเช่นคุณสามารถแปลง News.asp? id = 95 เป็นข่าว/95.html ผ่าน re_write นิพจน์การแมปปกติถูกตั้งค่าในไฟล์ httpd.ini
เพื่อให้ตัวอย่างเล็ก ๆ น้อย ๆ : เพื่อจัดการกับการเลี้ยวหน้าข้อมูลวิธีการเขียนคือ:
มากขึ้น _ <%= หน้า%> _ <%= type%>. html (หมายเหตุ: หน้าคือจำนวนหน้าหมุนประเภทคือประเภทข้อมูล) แบบฟอร์มการแสดงออก: More_1_95.html
หากคุณหันไปยังหน้าถัดไปนั่นคือ: More_2_95.html และดำเนินการวนลูปของหน้าถัดไปต่อไปคือ:
More_3_95.html และอื่น ๆ
อย่างไรก็ตามคุณต้องเพิ่มรหัสต่อไปนี้ในไฟล์ httpd.ini:
rewriterulle /more_(d+)_(d+).html /jsp การสอน /more.asp? page = $ 1 & type = $ 2 [n, i] สตริง 9
หากโปรแกรมแบบไดนามิกของคุณมีพารามิเตอร์หลายตัวที่จะผ่านให้เพิ่มหลาย (d+) ดังนี้:
rewriterulle /more_(d+)_(d+)_(d+).html /asp/more.asp?page=$1&type=$2&type2=$3 [n, i]
ข้อดี: โดยทั่วไปไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ ในโปรแกรม ปัญหา: เพื่อให้บรรลุเป้าหมายนี้คุณต้องควบคุม IIS ดังนั้นเมื่อคุณเช่าเซิร์ฟเวอร์ของคนอื่นคุณต้องติดต่อผู้ให้บริการก่อน (แน่นอนว่านี่คือ ASP ไม่จำเป็นต้องใช้ ASP.NET Tutorial - คุณสามารถใส่ชุดประกอบ DLL ลงในถังขยะโดยตรงในโปรแกรมแล้วกำหนดค่าให้เหมาะสม)
2. กลไกการจัดการข้อผิดพลาด 404 ของ IIS: โดยการปรับแต่งข้อผิดพลาดให้หันไปที่หน้าประมวลผลที่เราเตรียมไว้ อย่างไรก็ตามความสามารถในการปรับขนาดนี้จำเป็นต้องได้รับการศึกษาและข้อกำหนดโดยรวมสำหรับการประมวลผลโปรแกรมก็สูงเช่นกันและไม่เหมาะสำหรับการใช้งานจริง
ขั้นแรกให้ตั้งค่าคุณสมบัติไซต์ - ข้อผิดพลาดที่กำหนดเอง
ค้นหาข้อผิดพลาด HTTP 404 จากนั้นแก้ไขคุณสมบัติ -> ประเภทข้อความและเลือก url-> url เพื่อกรอก "/index.asp" หรือหน้าการจัดการข้อผิดพลาดของคุณ
ด้วยวิธีนี้ตัวอย่างเช่นเมื่อผู้ใช้หรือแมงมุมเยี่ยมชม http: //cn/12345.html (12345 เป็นรหัสของบทความในการสอนฐานข้อมูล) เนื่องจากไม่มีบางหน้าไม่มีข้อผิดพลาด 404 ข้อผิดพลาด เปลี่ยนเป็น index.asp
เพิ่มใน index.asp
การคัดลอกรหัสมีดังนี้:currdomain = request.serverVariables ("http_host") 'ชื่อโดเมนการเข้าถึงปัจจุบัน
currurl = แทนที่ (request.serverVariables ("query_string"), "404; http: //" & curromain & ": 80", "") 'Currurl เข้าถึงได้
Currurl ในเวลานี้ควรเป็น: 12345.html
3.
1. สร้างข้อมูลโฟลเดอร์ใหม่ (เนื่องจาก URL หน้าของข้อมูลการเข้าถึงขั้นสุดท้ายคือ http: // localhost/info/? 1.html)
2. สร้างไฟล์ default.asp ใหม่ในโฟลเดอร์ข้อมูล (นั่นคือหน้าของหน้าแรกเริ่มต้น)
เนื้อหาของไฟล์ default.asp มีดังนี้
การคัดลอกรหัสมีดังนี้:-
currdomain = request.serverVariables ("http_host") 'ชื่อโดเมนการเข้าถึงปัจจุบัน
currurl = แทนที่ (request.serverVariables ("query_string"), "404; http: //" & curromain & "ข้อมูล/?", "") 'Curror เข้าถึง URL
id = แทนที่ (currurl, ". html", "")
-
โดยที่ id คือพารามิเตอร์ที่ผ่าน
หากมีพารามิเตอร์หลายตัวคุณสามารถเปลี่ยน URL เป็นข้อมูล/? 1-2-3.html
ในหมู่พวกเขามี 1, 2 และ 3 แต่ละค่าแสดงค่าของพารามิเตอร์สามตัวและสามารถเสนอสตริงที่แยกจากกันได้
หน้าคงที่ HTML จริง
เขียนรหัส HTML ลงในไฟล์และสร้างไฟล์ในรูปแบบ. html
การคัดลอกรหัสมีดังนี้:-
filename = "test.htm"
หากคำขอ ("body") <> "" แล้ว
ตั้งค่า fso = server.createObject ("Scripting.filesystemObject")
ตั้งค่า htmlwrite = fso.createtextfile (server.mappath ("" ชื่อไฟล์ ""))))
htmlwrite.write "<html> <head> <title>" request.form ("title") "</title> </head>"
htmlwrite.write "<body> เนื้อหาชื่อเอาท์พุท:" request.form ("title") "<br/> เนื้อหาร่างกายเอาท์พุท:" request.form ("body") "</body> </html>"
htmlwrite.close
ตั้งค่า fout = ไม่มีอะไร
ตั้งค่า fso = ไม่มีอะไร
สิ้นสุดถ้า
-
<form name = "form" method = "post" action = "">
<input name = "title" value = "title" size = 26>
<br>
<textarea name = "body"> body </textarea>
<br>
<br>
<input type = "subment" name = "subment" value = "สร้าง html">
</form>
2. อย่างไรก็ตามมันไม่สะดวกมากที่จะสร้างไฟล์ HTML ตามวิธีการข้างต้น วิธีที่สองคือการใช้เทคโนโลยีเทมเพลตเพื่อแทนที่ค่าของรหัสพิเศษในเทมเพลตด้วยค่าที่ยอมรับจากฟอร์มหรือฟิลด์ฐานข้อมูลเพื่อให้ฟังก์ชั่นเทมเพลตเสร็จสมบูรณ์ เพื่อสร้างไฟล์ HTML จากรหัสเทมเพลตทั้งหมดที่ถูกแทนที่ในที่สุด เทคโนโลยีนี้ใช้มากขึ้นและ CMS ส่วนใหญ่ใช้วิธีนี้
template.htm '// ไฟล์เทมเพลต
การคัดลอกรหัสมีดังนี้:<html>
<head>
<title> $ title $ by aspid.cn </title>
</head>
<body>
$ body $
</body>
</html> testtemplate.asp '// สร้าง html
-
Dim fso, htmlwrite
Dim strtitle, strcontent, strout
'// สร้างวัตถุระบบไฟล์
ตั้งค่า fso = server.createObject ("Scripting.filesystemObject")
'// เปิดไฟล์เทมเพลตเว็บและอ่านเนื้อหาเทมเพลต
ตั้งค่า htmlwrite = fso.opentextfile (server.mappath ("template.htm")))
strout = f.readall
htmlwrite.close
strExtle = "ชื่อเว็บเพจที่สร้างขึ้น"
strContent = "เนื้อหาหน้าเว็บที่สร้างขึ้น"
'// แทนที่แท็กในเทมเพลตด้วยเนื้อหาจริง
strout = แทนที่ (strout, "$ title $", strtitle)
strout = แทนที่ (strout, "$ body $", strcontent)
'// สร้างหน้าคงที่ที่จะสร้าง
ตั้งค่า htmlwrite = fso.createtextfile (server.mappath ("test.htm"), จริง)
'// เขียนเนื้อหาไปยังหน้าเว็บ
htmlwrite.writeline strout
htmlwrite.close
Response.write "หน้าคงที่ถูกสร้างขึ้นสำเร็จ!"
'// ปล่อยวัตถุระบบไฟล์
ตั้งค่า htmlWrite = ไม่มีอะไร
ตั้งค่า fso = ไม่มีอะไร
-
บทความนี้แนะนำวิธีการใช้หน้าคงที่ใน ASP เพื่อนที่ต้องการมันสามารถอ้างถึงมันได้