支持其它扩展名的方法,如何将一个HTML页面嵌套在另一个页面中

 百家乐概况     |      2020-02-09 01:49

有的时候,我们为了网站的安全考虑,常常会修改网站的扩展名,如我看到有些网站的扩展名为 *.do,很明显这个扩展名是有意改掉的,可是改了这扩展名对于我们修改网页来说就麻烦了,比如用 Dreamweaver 8 来修改的时候就无法自动识别代码,代码显示为全部黑色,并不会高亮显示代码,也没有代码提醒功能,这就失去了 Dreamweaver 8 的作用,纯粹成了一个文字编辑器了。

这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可。这样便于维护,如果有很多网页,当通用内容需要修改时,只改一个文件就可以了,不需要每个文件单独修改。

可能有朋友到现在还没有理解此文到底是啥意思,这里打个比方吧,比如我建了一个 ASP 文件,然后我用 Dreamweaver 8 打开,在里面输入 ASP 的代码,大家会发现在输入 ASP 命令的时候会有提示,有时可能只需要输入命令的首字母,然后整个命令都会出来了,而且代码高亮显示,这样代码就有了很好的阅读性。那我现在把建立的 *.asp 文件改成 *.htmer,现在你再用 Dreamweaver 8 打开看看,是不是代码的高亮显示没有了呢?而且输入命令时也不提示了。所以接下来就进入正题。那么如何让 Dreamweaver 8 支持其它扩展名呢?其实只需要修改下让 Dreamweaver 8 的配置文档即可,具体方法如下:

最典型的应用比如页脚的版权信息等内容可以放在一个叫做footer.html文件里, 然后其他页面文件在页面内容的最后包含这个文件就可以了,具体例子下面有。

1、打开 C:Program FilesMacromediaDreamweaver 8ConfigurationDocumentTypes 文件夹(此为 Dreamweaver 8 默认安装路径),用 Dreamweaver 8 打开 MMDocumentTypes.xml 文件

要 html文件嵌套,最简单的办法是使用SSI(Server Side Include)技术,也就是在服务器端两个文件就被合并了。除了少数免费网页寄存服务外,几乎所有的网页寄存服务器都支持 SSI。这也是一个比较推荐的方法,它与ASP和ASP.NET网页使用的语法一模一样。如果网站管理员偏向使用PHP或JSP的话,语法会稍有不同。

2、我们会看到里面的代码形式为 <documenttype> …… </documenttype>

对于不能使用SSI、ASP、ASP.NET、PHP和JSP等服务器端动态页面语言的情况,这里还将介绍两种客户端镶嵌的办法:JavaScript和iframe的方法。当这两种客户端的方法都有很大的弊病,一般不推荐使用。

3、找到 documenttype id="ASP-JS" 和 documenttype id="ASP-VB" 两段,复制这两段代码到下面,记住,不要复制错了地方,代码是以 <documenttype> 开始,</documenttype> 结束

下面对各种方法单独具体介绍。

4、将刚刚复制的代码中的 winfileextension="asp" 属性和 macfileextension="asp" 属性改为 winfileextension="htmer" 和 macfileextension="htmer",然后保存即可,相关截图如下所示:

1、SSI (Server Side Include)

图片 1

SSI是一种简单的动态网页制作技术,但是有些服务器要求网页文件扩展名为.shtml才能识别文件中SSI命令。所以如果你的SSI命令看起来不工作,先别放弃,试着把文件扩展名改为.shtml,也许会成功。如果知道自己的服务器是否支持SSI,请看另一篇文章。

说明:此方法是让 Dreamweaver 8 将 *.htmer 文件支持 *.asp 文件的编辑,如果要支持其他语言的编辑,修改方法类似。

使用SSI一个局限性是页面一定要放在网页服务器上才能看到效果,在本地是不好调试的。当然,如果非要在本地调试,就本地装一个Apache服务器好了。

比如你想在每个网页的底部加上同样的版权信息,像

© 2009 程序员实验室 版权所有

可以把这行信息放到一个叫做footer.html的文件里,footer.html的内容为:

<center> © 程序员实验室 版权所有</center>;

这样同一路径下的其他页面文件要包含footer.html的SSI命令是:

<!- #include virtual="footer.html" ->(常用)

或者

<!- #include file="footer.html" ->

这 两者的几乎是一样的,不同之处在于include virtual后面取的是一个URL形式的路径,甚至还可以执行一个CGI程序并包含其输出结果,如果你的服务器支持CGI的话。而include file后面取的是一个文件系统路径,并且不能执行CGI程序。两者都可以接受相对路径,所以对上面这个简单例子,两者的效果是一样的。如果你不知道 URL路径与文件系统路径两者的区别的话,就用include virtual

更多关于SSI的介绍,请看这篇SSI的介绍文章。

2、PHP

如果你的服务器支持PHP的话,用PHP引用footer.html文件的写法如下:

<?php include("footer.html"); ?>

这句命令所在的文件扩展名必须被为.php。

除了引用本服务器上的文件,PHP的include命令还可以用来引用其它网站上的html文件,比如:

<?php include(http://www.prglab.com/examples/footer.html); ?>

当然你要得到其它网站的允许才能引用别人的文件。

3、ASP和ASP.NET

如果你使用的是老式的ASP,则语法是与上面SSI一样的,不需要任何修改,只要把命令所在文件的扩展名改为.asp即可。

对于ASP.NET,也是类似,不同之处在于,因为SSI命令是在ASP命令运行之前被首先编译,所以文件名中不能够使用ASP.NET的变量。如果一定要用的话,就用ASP.NET的命令来做文件嵌套吧。

比如:

<%

          Response.WriteFile ("footer.html")

%>

更多关于怎样在ASP.NET中实现动态文件嵌套,请参考微软的这篇文章。

4、JSP (Java Server Page)

JSP文件需要在基于Java的服务器上运行,比如Apache Tomcat。JSP包含文件的语法是:

<%@ include file="footer.html" %>