去掉通用事件头
我们知道,很难严格区分静态网页和动态网页,因为动态生成的网页,也需要使用不少静态的文件,例如图片、js、css等等。
所以我们总是在HtttpRequest事件的开始位置加上代码:
'通用事件头,用于发送已经存在的常见文件
Dim
fl As
String =
"d:\web\" &
e.path
If
filesys.FileExists(fl)
Dim idx
As Integer
= fl.LastIndexOf(".")
Dim ext
As String
= fl.SubString(idx)
Select Case
ext
Case
".jpg",".gif",".png",".bmp",".wmf",".js",".css"
,".html",".htm",".zip",".rar"
e.WriteFile(fl)
Return
'这里必须返回
End
Select
End
If
'以下是动态生成网页的代码
'...
这有点繁琐,实际上这个事件头可以去掉的,只需将启动服务的代码改为:
HttpServer.Prefixes.Add("http://*/")
HttpServer.WebPath
= "d:\web"
'指定静态文件存储位置
HttpServer.Start()
现在HtttpRequest不需要任何代码, 当用户访问某个文件时,系统会自动判断"d:\web"目录是否存在此文件,如果存在,则自动发送此文件,否则触发HttpRequet事件。
我们只用了3行代码,这应该是史上最简单的web服务搭建方法了。
从现在开始,我们的HttpRequest事件代码将不再包括通用事件头了,我们假定你已经使用上述代码启动了Web服务。
关于后缀名
如果给HttpServer设置了WebPath属性,在默认情况下,系统会发送该目录下以下类型的文件:
.jpg
.gif
.png
.bmp
.wmf
.js
.css
.html
.htm
.zip
.rar
.txt
.json
.svg
.ttf
.woff
.woff2
.eot
.ico
.map
.doc
.docx
.xls
.xlsx
HttpServer还有一个Extensions属性,这是一个集合,用于管理可发送文件的后缀名,我们可以根据需要添加删除后缀名,例如:
HttpServer.Prefixes.Add("http://*/")
HttpServer.WebPath
= "d:\web"
HttpServer.Extensions.Remove(".doc")
HttpServer.Extensions.Remove(".docx")
HttpServer.Extensions.add(".table")
HttpServer.Start()
提示:代码中的后缀名必须是小写,且必须以符号"."开头。