使用 ssi 服务器端包含文件
来源:互联网 发布:bs公式推导过程 知乎 编辑:程序博客网 时间:2024/04/29 17:48
这两天在使用 .net 环境写一个网站,网站内有部分内容没有使用用户控件,而是使用 SSI 进行服务器端包含的
主要针对的是页面广告部分,希望达成的效果是将广告放到一个文件内,不再读取数据库
于是先尝试使用用户控件方式,这个时候发现基本上无法判断广告的位置信息,如果把广告位置信息传递进用户控件,需要改动的地方实在太多,放弃
再次尝试 SSI 方式,每一个广告单独生成一个 shtml 文件,然后 include file 包含后成功
这很好,继续尝试
因为需要广告可以出现一个位置多个广告轮换显示,所以决定使用 SSI 包含一个动态文件
首先,我使用 ASP 的时候,ASP 文件内使用 SSI 包含是没有问题的,但是使用 .net 时,每一个.net文件头都有一个 Page 声明,使用 .aspx 直接包含 .aspx 是冲突的,并且,使用 SSI 包含服务器端文件是不能传递参数的
所以更换一下思路,在这里,我建立了一个公共广告文件adinfo.aspx,然后将广告的 <!--#include file="ad001.shtml"--> 修改成 <!--#exec cgi="ad/ad_001.aspx"-->,然后在生成广告的时候,吧 adinfo.aspx 的 Page 声明生成到 ad_001.aspx 中,也就是说 ad_001.aspx 内容只有一行“<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="adinfo.aspx.cs" Inherits="******" %>”
然后在 adinfo.aspx.cs 中接受一下服务器参数 Request.ServerVariables["SCRIPT_NAME"],就可以得到广告位置信息了,然后就可以根据广告位置输出响应的广告内容
------------------------------------
在尝试的过程中,发现SSI 包含是优先于脚本执行的,在 include file 后,包含的文件加载完成后才会对当前页面进行编译或解释,然后发现 .shtml 文件包含其他文件时,是没有任何执行过程,例如 a.shtml 中有一段 <!--#include file="b.asp"-->,而b.asp的代码是 <%response.write "<hr/>"%>,打开 a.shtml 后内容就是把b.asp代码完全输出了,没有运行,所以只能使用 exec 方法来加载服务器端文件
- 使用 ssi 服务器端包含文件
- Apache--SSI 服务器端包含
- SSI服务器端包含入门
- Apache指南:服务器端包含入门(SSI)
- Apache源代码解析之服务器端包含SSI
- Apache指南:服务器端包含入门(SSI)
- 服务器端包含SSI(Server Side Include)简介
- Apache Server 服务器端 包含 SSI 方法 笔记
- 服务器端包含SSI(Server Side Include)简介
- 服务器端包含SSI(Server Side Include)简介
- 让windows2008的iis7.0启用在服务器端的包含文件,支持shtml的SSI
- Apache下启用SSI(服务器端包含,shtml)
- 服务器端包含SSI(Server Side Include)简介2
- Windows Azure 网站 (WAWS) 中的服务器端包含 (SSI)
- SSI - 服务器端嵌入
- 在SHTML中通过SSI指令实现文件动态包含
- SSI服务端包含技术
- SSI-服务端包含技术
- 计算IP网段,掩码
- java反射
- SVN 插件
- Linux 下载文件命令
- **YII** 系列四数据库访问
- 使用 ssi 服务器端包含文件
- java反射机制Class类的用法详解
- SparkStreaming示例在集群中运行
- 反射调用setMobileDataEnabled方法设置移动数据网络失败
- freemarker一般的操作
- 修改完网卡配置文件立即生效
- 打印菱形
- 分布式与集群
- 相机模型与标定(十三)--鱼眼相机标定