【问题标题】:including other pages in HTML documents包括 HTML 文档中的其他页面
【发布时间】:2011-03-20 21:19:10
【问题描述】:

假设您正在处理一个包含许多页面(index.html、blog.html、contact.html...)的网站模板。您首先设计主页,然后转到其他页面。当您在其他页面上时,您会想到一些改进,而这些改进肯定会影响到整个网站。

所以我返回每个页面并进行更改。这是非常低效的,尤其是当您有 6 个或更多页面并且有时您忘记更新更改时。

如果是 PHP,我会这样做

require ('header.php');

这对我很有效。但现在,我正在处理 HTML,不太喜欢先转换为 PHP,然后再转换为 HTML。

那么您有具体的方法/方式吗?

【问题讨论】:

    标签: html server-side-includes


    【解决方案1】:

    如果您的服务器支持,您可以使用服务器端包含来获得所需的效果。

    您可以使用 PHP 来包含许多较小的 HTML 文件。 PHP 脚本是最小的。不需要“转换”。就像require('header.html'); require('body.html'); require('footer.html'); 之类的东西。

    如果您担心必须编写大量 PHP,您可以使用 Smarty TPL 等模板引擎将代码与页面明确分离,并最大限度地减少您必须编写的代码量。这有一个额外的优势,即拥有 HTML“生成器”,它会自动为您生成单选按钮或混淆电子邮件地址。

    您可以使用 CSS 来集中页面样式,这样您就可以通过修改样式表来更改站点范围的外观、布局和设计。

    【讨论】:

      【解决方案2】:

      如果您正在处理 HTML 页面(例如,包括扩展名 .htm.html),请考虑使用 Server Side Includes。这种方法适用于基本的 HTML 解析,并被大多数/所有主要 Web 服务器支持,包括 ApacheIIS

      只需将此文本包含在您的 .html 文件中即可:

       <!--#include virtual="header.html" -->
      

      然后,Web 服务器将获取该文件中的标记,并将其内联插入它当前提供的页面中。

      【讨论】:

      • @anonymous downvoter:想解释一下为什么这个以 html 包含为中心的答案未能解决直接寻找包含 html 文件的方法的问题?
      • 我使用的是深渊网络服务器,它支持服务器端包含。不过我没想到。实际上,这是最好的解决方案,因为我不必使用 PHP 或任何其他语言。这很简单,而且很有效。
      【解决方案3】:

      您可以将 PHP 用作预处理器、代码生成器。在本地计算机上运行 PHP,然后保存它生成的静态 HTML 页面并将它们发布到生产环境。您可以编写一个小脚本来访问您的每个 PHP 页面并保存相应的 HTML。这样您就可以在设计时享受 PHP 的便利,在生产中享受 HTML 的简单性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-04
        • 2014-12-27
        • 2014-11-12
        相关资源
        最近更新 更多