所以我有一个超过10页的网站。现在我想将标题部分、页眉和页脚导出到其他文件,以便于进一步编辑这些部分,而不必浏览每一页。是否可以制作 header.html 并让其他 html 文件从单独的文件中导入代码?
4 回答
您所描述的是“包含”,这是使用 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
对于不同的主机环境,这条线会有所不同,因此您可能需要对其进行调整。
是的,您的问题是防止代码重复的一般问题。与一般问题一样,多年来,这个问题通过许多不同的方法得到了很多解决。
还有更多可能的解决方案,仅列出所有可能的解决方案将是一项非常艰巨的任务,因此我的答案将非常模糊。
- 您可以使用对象标签来重用您的结构
- 您可以使用客户端语言加载它,如Javascript(或使用其非常流行的库,称为jQuery)
- 最后,您可以使用服务器端语言生成 HTML
您可以将您的标头和相关文件移动到一个 html 文件中,然后调用 jQuery load 将其引入。
用法 http://api.jquery.com/load/
您还可以使用 PHP 对 header.php 文件执行 php include_once。这类似于 wordpress 所做的!
用法 http://php.net/manual/en/function.include-once.php
祝你好运,如果还有其他问题,请告诉我!
你不能用 CSS 做到这一点。您可以使用 Ajax 从单独的文件中调用这些 HTML 内容(使用 jQuery 非常简单),也可以使用 PHP 直接包含文件。