XYZ's Blog

Follow your heart

ASP生成静态页面

Posted on July 10, 2010 | Posted in 编程开发

做网站已经有一段时间了,虽然自我感觉不咋滴,但基本的问题还是可以应付滴,尤其是经历了阿里同盟这间比较令人无语的网络公司之后,在职期间一直都是做企业网站,虽然入职第一个做的是商城系统,但直到我离职的时候这个网站都还没有正式投入使用,客户是老板的一个朋友吧,做这个网站的时候基本和我“沟通”到深夜一两点,遇见这等热心的可客户,对我这个新手加菜鸟来说是有点鸭梨了,最后是勉强完成了任务,至于为什么至今还没投入使用网站就不得而知了,既然离职了,也就没我鸟事了。

啊,偏题了,是的,说回企业网站,当时阿里同盟代理了阿里巴巴的一个软件,叫做“e网打进”,就是在网站插入一段js代码,如果客户在浏览这个网站的时候,同时如果客户本身有登陆阿里旺旺的话,那么,在“e网打进”的后台就可以看到客户在阿里旺旺上面登记的信息,包括地址、电话等等信息,从而网站所有者可以主动联系客户,寻找商机。个人觉得这样是阿里巴巴在出卖客户的私隐了- -,因为‘e网打进”是要有网站才能使用的,所以当时在阿里同盟的时候就做了大量的企业网站,印象中世一个月做了五十个,当然基本上是垃圾级别,没什么质量可言,新的知识没学到什么,但是却大大加快了自己做网站的速度。

啊,又偏题了,看来要找个时间好好写一写在阿里同盟黎发生的事情才行,因为这家公司实在是太鸟了。

因为之前在阿里同盟做的网站都是以动态形式显示的,现在在全友卫浴工作了,公司要求做的网站最后是静态的,有利于seo优化,个人对seo不懂,但也看过一些资料确实是这样,具体原理,我不知道,也不打算在这篇文章里写出来,这里主要的是介绍asp生成静态页面的方法(迷的声:啊,你终于入正题了|||)

毫无疑问,对于生成文件,涉及到fso方面的东西,关于asp生成静态,主要有三种方法,第一种是把html代码写到asp文件中,然后用fso技术生产html文件,第二种是各大cms系统和WordPress本身也使用到的模板技术来生产html文件,第三种就是第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。

我这里介绍的的是第二种,模板技术,其他的两种会找时间另外作介绍的。哼哼,明显是懒。

这里我们要先写好两个文件的代码,一个模板文件template.htm,另一个是生成html文件的asp页面MakeTemplate.asp
其中template.htm代码如下:

<html>
<head>
<title>$title$</title>
</head>
<body>
$content$
</body>
</html>

当然,你也可以不用美刀符号,而改成{title}和{content}之类的。

另外的MakeTemplate.asp代码如下:

<%
Dim fso,htmlwrite
Dim strTitle,strContent,strOut
'// 创建文件系统对象
Set fso=Server.CreateObject("Scripting.FileSystemObject")
'// 打开网页模板文件,读取模板内容
Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
'//读取对象的所有内容
strOut=fso.ReadAll
htmlwrite.close
strTitle="生成的网页标题"
strContent="生成的网页内容"
'// 用真实内容替换模板中的标记
strOut=Replace(strOut,"$title$",strTitle)
strOut=Replace(strOut,"$content$",strContent)
'// 创建要生成的静态页
Set htmlwrite=fso.CreateTextFile(Server.MapPath("index.htm"),true)
'// 写入网页内容
htmlwrite.WriteLine strOut
htmlwrite.close
'// 释放文件系统对象
set htmlwrite=Nothing
set fso=Nothing
%>

嗯基本上就是这样了~~~
试试看吧
如果要批量生成产品介绍页面和新闻内容页面,当然就要结合到asp本身的循环函数啦

比如

do while not rs.eof then

Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
strOut=fso.ReadAll
htmlwrite.close
strTitle=rs("title")
strContent=rs("content")
strOut=Replace(strOut,"$title$",strTitle)
strOut=Replace(strOut,"$content$",strContent)
Set htmlwrite=fso.CreateTextFile(Server.MapPath("page"&rs("id")&".htm"),true)
htmlwrite.WriteLine strOut
htmlwrite.close
set htmlwrite=Nothing
set fso=Nothing 

if rs.eof then exit do
rs.movenext()
loop

Sponsor