惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
美团技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
雷峰网
雷峰网
P
Proofpoint News Feed
IT之家
IT之家
人人都是产品经理
人人都是产品经理
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
T
The Blog of Author Tim Ferriss
月光博客
月光博客
V
Visual Studio Blog
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
T
Troy Hunt's Blog
Project Zero
Project Zero
U
Unit 42
T
Tor Project blog
Scott Helme
Scott Helme
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
I
InfoQ
Cloudbric
Cloudbric
P
Proofpoint News Feed
The Cloudflare Blog
H
Heimdal Security Blog
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
Attack and Defense Labs
Attack and Defense Labs
有赞技术团队
有赞技术团队
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
博客园 - 【当耐特】
Security Latest
Security Latest
The Register - Security
The Register - Security
F
Fortinet All Blogs
I
Intezer
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
NISL@THU
NISL@THU
T
Tenable Blog

博客园 - yhb199

中国B2B行业将进入后平台时代 做产品经理 而不是功能经理(转淘宝鬼脚七) 全球最值的学习的100个网站 50 Value Propositions for Ecommerce Retailers 产品经理负责制的诱惑与窘迫(转) 产品团队的关键角色及其职责 互联网产品设计之需求管理 O2O循环圈 顶部导航条(Top Navigation Bar)_Yahoo_Pattern(翻译) 手风琴导航(Accordion)_Yahoo_Pattern(翻译) 左侧导航条(Left Navigation Bar)_Yahoo_Pattern(翻译) 浅谈电子商务产品的页面类型 B2C暴利行业之保健品行业 当产品经理遭遇项目经理 阿里巴巴公司内部资料:交互设计全档案 互联网产品经理常用软件及工作平台 如何安装PE到硬盘(包括移动硬盘)分区 明月几时有?(故事版) ASP.NET SQL 注入免费解决方案
静态页调用静态页方法谈论
yhb199 · 2009-12-10 · via 博客园 - yhb199

    1、使用frame与iframe的概念与动态页面(asp,jsp,php等)的include那样不同,frame与iframe的主体页面与被包括的页的不是一个页面,而通过include的方式调用的页面主体页面与被包括的页面仍然是一个页面,这样页面再加载的时就没速度的影响,更不会有多个窗口这样的问题。当然frame与iframe的作用还是挺大的,只是这与include这样包括页面进来的概念不同;

  如果页面有很多静态页面,内容不是动态的且没有规律可循,更不好做到数据库里去,这时我们可以采用shtml的方式来做这些页面:

  那什么是shtml呢?

  使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

  什么是SSI?

  SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有 强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。 网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,它将 一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。

  如何使你的Apache服务器支持SSI?

  Apache(如何在windows以及linuc下安装apache请参见另两篇文章)默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例(在linux平台下与之相同),打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,找到:

  以下是引用片段:

  # AddType text/html .shtml
  # AddOutputFilter INCLUDES .shtml

  把这两行前面的#去掉 。

  然后搜索“Options Indexes FollowSymLinks”

  在搜索到的那一行后面添加“ Includes”

  即将该行改变为 Options Indexes FollowSymLinks Includes

  熟悉apache manual的可能会觉得比较容易。

  保存httpd.conf,重起apache即可

  到此我们就完成了对Apache SSI的设置。

  如何让你的IIS服务器支持SSI

  windows 2000:

  IIS里添加一个应用程序扩展名映射

  可执行文件:C:WINDOWSsystem32inetsrvssinc.dll

  扩展名:shtml/shtm

  windows 2003 2003默认已经支持SSI(shtml文件),只需在IIS的"Web服务扩展"里设置"在服务器端的包含文件"为"允许" 即可IIS6.0对于SSI进行了一些改进,以前IIS5.0的一些程序迁移过后可能无法运用。

  一个经常的出现问题是出现如下错误:

  "处理 SSI 文件时出错 - Error processing SSI file"

  经过测试,以下做法会导致这个错误:

  1、服务器物理路径使用中文名。

  2、包含文件中使用中文名。

  3、包含文件不存在。

  4、被包含的文件再次包含使用中文名的文件。

  该错误在Unicode编码时依旧,属于IIS的问题。

  解决方法:对于使用SSI的站点物理和URL地址都全部使用英文。

  shtml文件测试?

  主体文件,比如命名为test.shtml,内容为(把head.html与foot.html文件包进来,与asp,jsp,php中的include相同)

  以下是引用片段:

<!--#include file="head.html"--><hr><b>你好,这是中间的内容</b><hr><!--#include file="foot.html"-->

  页首文件,比如命名为head.html,内容为

  以下是引用片段:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><div style="background-color:#00CC66;boder:1px groove orange ">我是页首导航栏的公共信息</div>

  页尾文件,比如命名为foot.html,内容为

  以下是引用片段:

  我是页尾版权信息</body></html>

  然后运行web server,在地址栏中打开test.shtml文件,就会得到一个完整的页面,包括头与尾文件。

  shtml中简单的SSI命令

  SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。比如我们修改上面提及的test.shtml文件,加入以下代码,将会显示服务器日期以及客户端IP等:

  以下是引用片段:

<font color=red> 本文档名称: <br> <!--#echovar="DOCUMENT_NAME"--> <br> 时区:<br> <!--#echovar="DATE_LOCAL"--> <br> 你的IP地址是: <br> <!--#echovar="REMOTE_ADDR"--><br> 今天是: <!--#config timefmt="%A, %B %d, %Y"--> <!--#echovar="LAST_MODIFIED" --> <br> </font>

  SSI指令基本格式

  程序代码:

以下是引用片段:
<!-– 指令名称="指令参数">
<!--#include file="head.htm"-->

  说明:

  1.<!-- -->是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。

  2.#include 为SSI指令之一。

  3.file 为include的参数, info.htm为参数值,在本指令中指将要包含的文档名。

  注意:

  1.<!--与#号间无空格,只有SSI指令与参数间存在空格。

  2.上面的标点="",一个也不能少。

  3.SSI指令是大小写敏感的,因此参数必须是小写才会起作用。详细可以查看SHTML详细教程 ,通过SHTML可以减轻许多工作负担哦。另外:shtml文件在网页服务器下运行才有效,直接用ie打开将被当作是文本文件。