以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]高级开发指南 去掉通用事件头 是否有误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143441)

--  作者:panyongming
--  发布时间:2019/11/25 11:00:00
--  [求助]高级开发指南 去掉通用事件头 是否有误

下面黄色底色部分是否有误?


去掉通用事件头

我们知道,很难严格区分静态网页和动态网页,因为动态生成的网页,也需要使用不少静态的文件,例如图片、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
\'以下是动态生成网页的代码
\'...

这有点繁琐,实际上这个事件头可以去掉的,只需将Httprequest事件代码改为:

HttpServer.Prefixes.Add("http://*/")
HttpServer
.WebPath = "d:\\web"  \'指定静态文件存储位置
HttpServer
.Start()

现在HtttpRequest不需要任何代码, 当用户访问某个文件时,系统会自动判断"d:\\web"目录是否存在此文件,如果存在,则自动发送此文件,否则触发HttpRequet事件。

我们只用了3行代码,这应该是史上最简单的web服务搭建方法了。

从现在开始,我们的HttpRequest事件代码将不再包括通用事件头了,我们假定你已经使用上述代码启动了Web服务。


--  作者:有点蓝
--  发布时间:2019/11/25 11:35:00
--  
有什么问题?
--  作者:panyongming
--  发布时间:2019/11/25 12:28:00
--  
HttpServer.Prefixes.Add("http://*/")
HttpServer
.WebPath = "d:\\web"  \'指定静态文件存储位置
HttpServer
.Start()

这组代码应该是用来开启HTTP服务的,不应该写在Httprequest事件代码中

--  作者:有点蓝
--  发布时间:2019/11/25 13:39:00
--  
嗯,是的,帮助的说法不够严谨。会产生误会,可以改为:

这有点繁琐,实际上这个事件头可以去掉的,只需将Httprequest事件代码去掉,然后启动服务代码改为: