-1

目前,我的网站使用静态手写 HTML 页面。我手动将导航菜单添加到所有页面。我希望能够维护一个包含菜单 HTML 代码的单个用户资源文件,并从网站上的所有其他 HTML 文件中引用该文件。我知道我们可以使用服务器端包含和客户端包含来做到这一点。但是在阅读了每种方法的优缺点之后,我对我应该使用哪种方法来适应我的情况感到困惑。

PS 我的服务器不是 PHP 服务器。

谢谢!

4

3 回答 3

1

平面 HTML 文件不能相互包含。您必须使用一种或另一种服务器端脚本语言。

您的服务器是 Apache (Linux) 的某种风格吗?如果是,它可能会启用 php。请咨询您的托管服务提供商。

不管怎样,经验法则如下(适用于任何后端框架,但详细与 php 相关):

1) 在一个 HTML 页面上编码你的导航

2) 将其保存为 php 文件(或按照服务器端的程序进行操作——从现在开始,我继续假设您将使用 php)

3) 将所有页面保存为 .php,以便能够包含新的可重用元素

4) 用 php include 语句替换所有页面中的导航部分 HTML,包括您的导航文件,例如 nav.php 例如,

  include( $path . 'nav.php')

5)如果您希望包括“you-are-here”突出显示,a)在所有页面的 body 标签上设置一个 id b)在您包含的 nav.php 中的每个链接上设置一个 id

6) 在您的 CSS 中,列出所有可能的页面 ID 和导航链接 ID 组合,例如

  #homepage #homeLink, 
  #contactPage #contactLink,
  #aboutPage #aboutLink {

  /* format your "active" nav link here */

  }
于 2013-03-21T22:11:02.577 回答
1

最后,您希望网站加载速度更快且易于维护。如果您使用客户端 javascript 来执行 AJAX 以获取模块/小部件,那么您将添加更多 http 请求,并且该站点将明显变慢。使用服务器组装页面是可行的,但是您会失去 javascript 动画和 AJAX 的优势。服务器和客户端的混合可能会令人困惑,但可能是最佳的。如果您的服务器是 Node.JS,那么您将拥有巨大的优势,因为可以将服务器上的相同功能配置为适用于客户端。

例如,您可以使用服务器来组装导航栏作为索引文件的一部分,并使用客户端在用户通过 ajax 登录后加载更新的导航栏等内容。可以在 Node 和浏览器中使用相同的功能 - 例如,jQuery 或 YUI 在 node.js 中可用。

所以这真的取决于你的服务器,以及你想做多少工作。

到目前为止,我能给你的最简单、最快捷的解决方案是使用服务器端模板。不知道你的服务器,使用 jQuery 和 load 方法对于客户端模板加载很有用。

http://docs.jquery.com/Ajax/load

于 2013-03-21T22:02:42.563 回答
1

或者,您可以使用 Jquery 的 .load() 函数将另一个文本文件加载到导航中(如果在 txt 文件中使用 html 标记,它将加载为 html),但如果用户禁用了 JavaScript,这将无用。

请参阅下面的 Jquery 文档链接

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

于 2013-03-21T22:20:35.330 回答