我在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都在同一个目录中???
答案 0 :(得分:15)
以前的语法是SSI,后者是PHP。两者都是服务器技术,只有从支持并配置为检查文件的语法的HTTP服务器访问时才能工作(这通常意味着您必须打开支持并使用.shtml / .php文件扩展名(或更改)从默认配置到确定要检查的文件))。其他服务器端技术也可用。
HTML本身唯一的“包含”机制是(i)frames和objects。
您还可以考虑一个模板系统,例如TT,您可以将其作为构建步骤运行以生成静态HTML文档(注意:TT也可以在运行中使用)。
答案 1 :(得分:7)
使用静态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,您有以下选项:
请参阅my answer here以获取示例代码和更多详细信息(如果对您而言,还有关于SEO的警告)。
答案 3 :(得分:-1)
将要包含的html文件包含在 php 文件中。 (仅将扩展名更改为.php
)。如果文件在一个目录中,则包含代码为:
<?php include "nameoffile.php" ?>