注册 登录
编程论坛 ASP技术论坛

asp动态页面静态化

dw786270365 发布于 2010-07-30 17:08, 1492 次点击
我想把一个asp的站点全部静态化,请问下各位这要怎么弄啊?新手麻烦帮下忙,跪谢各位~~

最好附上源码
18 回复
#2
gupiao1752010-07-30 17:14
查找里,找“静态"即可。相关资料很多。
#3
孤独冷雨2010-07-31 09:55
找到的资料基本上都是用不上的!页面生成静态还好搞一些,难的就是翻页!
#4
gupiao1752010-07-31 12:56
孤独冷雨,不用找了,直接用你发过的一个例子,ASP+ACCESS生成静态的例子,除非你忽悠人,把假的发上去!
#5
孤独冷雨2010-08-02 13:02
回复 4楼 gupiao175
那个太难了,新手根本看不懂!
#6
gupiao1752010-08-02 15:46
以下是引用孤独冷雨在2010-8-2 13:02:53的发言:

那个太难了,新手根本看不懂!
他应该不算新手了,他是学了部分。NET完了以后,才来做ASP的,努力看看应该没问题!
#7
yms1232010-08-02 20:35
静态化关键是分页不好维护。
#8
wangjy5002010-08-02 21:21
生成静态很简单。
#9
wangjy5002010-08-02 21:23
分页是麻烦,就是每次有新数据就要重新生成全部页面
#10
hams2010-08-03 08:40
能自动更新分页的还叫静态么
#11
dw7862703652010-08-04 13:06
回复 7楼 yms123
我想用模板生成静态页面,这个模板还有就是替换模板的内容有点不清楚啊
#12
dw7862703652010-08-04 13:08
回复 2楼 gupiao175
对于我那个站我主要是模板生成啊,template.htm ' //模板文件
<html>
<head>
<title>$title$ by </title>
</head>
<body>
$body$
</body>
</html> ?
TestTemplate.asp '// 生成Html

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


可是你那上面使用什么读取模板的啊??怎么都没看到捏,还有用于替换的内容这块
#13
wangjy5002010-08-04 20:43
<%
Function getHTTPPage(url)
 dim http
 set http=Server.createobject("Microsoft.XMLHTTP")
 Http.open "POST",url,false
 Http.send()
  if Http.readystate<>4 then
   exit function
  end if
 getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
 set http=nothing
 if err.number<>0 then err.Clear
End function
Function BytesToBstr(body,Cset)
 dim objstream
 set objstream = Server.CreateObject("adodb.stream")
 objstream.Type = 1
 objstream.Mode =3
 objstream.Open
 objstream.Write body
 objstream.Position = 0
 objstream.Type = 2
 objstream.Charset = Cset
 BytesToBstr = objstream.ReadText
 objstream.Close
 set objstream = nothing
End Function
%>
<%
dim httpurl
httpurl= "http://"&Request.ServerVariables("HTTP_HOST")
txtURL=httpurl&"/view.asp?id=94"
sText=getHTTPPage(txtURL)
set FileObject=Server.CreateObject("Scripting.FileSystemObject")
filename="94_1.html"
Set openFile=FileObject.openTextfile(server.mappath(filename),2,true)'true为不存在就创建
openFile.writeline(sText)
set OpenFile=nothing
%>
可以生成静态页!
#14
dw7862703652010-08-05 08:53
回复 13楼 wangjy500
对于xmlhttp方法有时重复性太大啦啊。你习惯用这种方法嘛??   有些还是有点不明白,麻烦您加我QQ :786270365  有什么不懂的直接请教您哈
#15
aina2010-08-05 08:55
不错,不学习。怎么能看懂呢
#16
dw7862703652010-08-05 12:12
回复 15楼 aina
那你把你的方法拿出来晒下啊
#17
wangjy5002010-08-05 12:40
重复性太大了是什么意思呀?
#18
dw7862703652010-08-05 15:04
回复 17楼 wangjy500
我每个url都要传个链接进去捏,像我几千个产品,用正则还是怎么样弄啊?
#19
gupiao1752010-08-05 16:19
以下是引用dw786270365在2010-8-5 08:53:52的发言:

对于xmlhttp方法有时重复性太大啦啊。你习惯用这种方法嘛??   有些还是有点不明白,麻烦您加我QQ :786270365  有什么不懂的直接请教您哈

两种方法都得用FSO,各有利弊,我个人感觉XMLHTTP方法,在分页上会显得轻松些!而前者对于界面上更合适些,比如经常早期看到的一些自住建站什么的,利用模板自己生成一些文件站点!但是分页和灵活性都不行,就是不能在那个死页面上分页!但是这些方法对有限的虚拟空间的其实都不太合适,频繁的ADO操作,FSO权限等,一不小心就出问题。如果只是单纯想静态化,而没有其他特殊要求,推荐还是用组件吧!在好一些空间都会提供这个组件的支持!
1