0

所以我有一个超过10页的网站。现在我想将标题部分、页眉和页脚导出到其他文件,以便于进一步编辑这些部分,而不必浏览每一页。是否可以制作 header.html 并让其他 html 文件从单独的文件中导入代码?

4

4 回答 4

2

您所描述的是“包含”,这是使用 PHP 的方法。我建议使用像 PHP 这样的服务器端语言来执行包含,因为它肯定会被 Google 索引,并且您不必担心用户禁用了 javascript 或支持不佳。

首先,除非您的网页保存为 PHP(扩展名为 .php)或您的 HTML 页面(扩展名为 .html)被 PHP 解析,否则您将无法执行此操作。显然,您还需要在服务器上运行 PHP。

获取您想要“包含”的块并将它们保存到它们自己的文件中(header.php、footer.php 等)。将它们放在您的资产区域下的它们自己的文件夹中(例如名为 include 或 inc 的目录)。然后,在您的网页中,使用 PHP 包含这些文件:

<?php include_once($_SERVER['DOCUMENT_ROOT'].'/include/header.php') ?>

我喜欢使用$_SERVER['DOCUMENT_ROOT']变量,所以我不需要记住包含目录的相对路径。在您放置原始标题 html 的位置使用该包含行。

如果您想将文件保留为 HTML,但将它们解析为 PHP,则需要确保您的服务器将 HTML 文件解析为 PHP。您可以指示服务器在.htaccess(假设为 Apache)中执行此操作,您需要这样的一行:

AddHandler application/x-httpd-php .php .htm .html

对于不同的主机环境,这条线会有所不同,因此您可能需要对其进行调整。

于 2013-10-11T22:25:50.777 回答
1

是的,您的问题是防止代码重复的一般问题。与一般问题一样,多年来,这个问题通过许多不同的方法得到了很多解决。

还有更多可能的解决方案,仅列出所有可能的解决方案将是一项非常艰巨的任务,因此我的答案将非常模糊。

于 2013-10-12T00:29:26.430 回答
1

您可以将您的标头和相关文件移动到一个 html 文件中,然后调用 jQuery load 将其引入。

用法 http://api.jquery.com/load/

您还可以使用 PHP 对 header.php 文件执行 php include_once。这类似于 wordpress 所做的!

用法 http://php.net/manual/en/function.include-once.php

祝你好运,如果还有其他问题,请告诉我!

于 2013-10-11T21:30:12.327 回答
0

你不能用 CSS 做到这一点。您可以使用 Ajax 从单独的文件中调用这些 HTML 内容(使用 jQuery 非常简单),也可以使用 PHP 直接包含文件。

于 2013-10-11T21:28:45.813 回答