如何将一个HTML文件包含在另一个中?

时间:2011-09-25 00:40:29

标签: html

我在stackoverflow上尝试了所有可能的问题,但无法解决此问题......

    <!--#include virtual="include.shtml"-->
    <!--#include virtual="include.html"-->
    <!--#include file="include.shtml"-->
    <!--#include file="include.html"-->
    <!--#include virtual="/include.shtml"-->
    <!--#include virtual="/include.html"-->
    <!--#include file="/include.shtml"-->
    <!--#include file="/include.html"-->
    <? include("/include.shtml"); ?>
    <? include("include.shtml"); ?>
    <? include("/include.html"); ?>
    <? include("include.html"); ?>

我尝试使用运行在localhost / include / index.html或file:///home/sahil/Desktop/include/index.html上的apache服务器以及所有上述包含,但它们都不适合我:(。现在我应该使用哪种方法将一个HTML文件包含到另一个中,考虑到我的index.html和include.html都在同一个目录中???

4 个答案:

答案 0 :(得分:15)

以前的语法是SSI,后者是PHP。两者都是服务器技术,只有从支持并配置为检查文件的语法的HTTP服务器访问时才能工作(这通常意味着您必须打开支持并使用.shtml / .php文件扩展名(或更改)从默认配置到确定要检查的文件))。其他服务器端技术也可用。

HTML本身唯一的“包含”机制是(i)framesobjects

您还可以考虑一个模板系统,例如TT,您可以将其作为构建步骤运行以生成静态HTML文档(注意:TT也可以在运行中使用)。

答案 1 :(得分:7)

HTML是静态

使用静态HTML在其他HTML页面中包含HTML页面是不可能的,因为HTML不支持HTML页面。要使HTML动态化,您有两种可能:使用客户端脚本或使用服务器端技术。

...除非您开始使用frames(使用HTML5标准删除)或iframes,因为它被视为完全不同的网页,因此很可能不是解决方案。

客户端解决方案

您可以使用document.write function创建JavaScript文件并编写HTML,然后将JavaScript文件包含在您需要的位置。此外,您可以使用一些AJAX,但有一些JavaScript库可以减轻您的负担,例如流行的jQuery库。

然而,我不建议使用客户端解决方案,因为它比它的价值更麻烦......

服务器解决方案

有许多服务器端解决方案:ASP,ASP.NET,ASP.NET MVC,Java,PHP,Ruby,列表还在继续。您需要了解的是,服务器端技术可以被描述为特定服务器端语言的解析器,以自动执行某些繁琐的任务并执行将代表客户端安全风险的操作。

当然,您需要拥有托管此类网站和配置托管环境的方法。例如,您可以托管一个带有Apache的PHP网站,甚至还有一个开发人员托管环境,例如/ MAMP / LAMP / WAMP。

您可以在online documentation

中查看在PHP中包含页面的示例

就个人而言,我更倾向于使用服务器端解决方案。

答案 2 :(得分:3)

HTML没有“包含”机制 - 我不确定您在StackOverflow上看到过这些解决方案的位置。您可能一直在寻找服务器端语言的答案,例如PHP或ASP。

对于只有静态页面和JavaScript的“纯”HTML,您有以下选项:

  1. 的Ajax
  2. 请参阅my answer here以获取示例代码和更多详细信息(如果对您而言,还有关于SEO的警告)。

答案 3 :(得分:-1)

将要包含的html文件包含在 php 文件中。 (仅将扩展名更改为.php)。如果文件在一个目录中,则包含代码为:

<?php include "nameoffile.php" ?>