在静态HTML网站中管理重复代码的最佳方法是什么?

Gor*_*oro 29 html css navigation

我正在管理一个包含大量静态HTML网站的遗留网站,没有服务器端脚本,只有简单的HTML/CSS,最小的javascript.我发现在不同的页面中多次更改同一段代码是浪费时间.例如,当菜单中的某些内容发生变化时,由于菜单只是每个文档中的静态文本,因此我必须多次进行相同的更改.

我想知道最小化这种开销的最佳策略是什么,换句话说,你会推荐什么来管理多个静态HTML页面之间的导航代码.

我知道你可以用:

  1. 服务器端脚本(如PHP),但没有其他原因在该特定站点使用脚本.
  2. 帧(但这很糟糕,因为它......好吧,帧:))
  3. 服务器端包括(这似乎可能会导致更改服务器时出现问题)
  4. javascript(对SEO不利)

你会推荐什么?

谢谢.

Xan*_*hir 10

在所有可能性中,无论是列出的内容还是我所知道的任何其他内容,我仍然只使用基于PHP的简单解决方案.它简单而干净,您无需付出任何努力.我对我设计的所有小网站都这样做.

大多数情况下,你最终会得到相当微不足道的结构.您编写了一个完整的页面,然后对于每个后续页面,您只需更改内容所在的中间位.在这种情况下,只需将内容上方和下方的所有内容保存在header.php和footer.php文件中,然后将其放在<?php require_once "header.php"; ?>每个内容文件的顶部(与页脚文件类似).完成!

这确实有一些小缺点.首先,你依赖于脚本,但PHP是世界上部署最广泛的服务器端语言,所以这不是一个问题.你甚至不在乎它是PHP4还是PHP5,因为你没有做任何花哨的事情.

对于两个,您在每个页面加载时都运行一个脚本,以便提供基本上是静态文件的内容.这会减慢您的响应速度,并不必要地强调CPU.这可能并不重要(滞后很小),但是如果你觉得它很浪费,那么有一些很好的PHP框架可以为你生成PHP生成的页面并为它们生成静态htmls.(这也很容易做到,只需要使用输出缓冲即可完成一些工作.)通过这种方式,您可以充分利用这两个方面 - PHP模板(如果您最终想要更好的东西,那么完整的PHP语言) )但静态html页面,以最小的CPU活动和最快的页面加载时间.

  • 在我看来,为了方便开发人员而让服务器提供动态页面是过度的,特别是考虑到存在更好的方法(参见其他aswers). (3认同)

Pao*_*tti 9

您可以使用静态站点生成器.我推荐jekyll.


Bob*_* F. 6

如果您设置维护静态站点,我建议使用静态站点生成器.

我过去使用的是webgen

从webgen页面:

页面布局与内容分离:如果更改布局,则会自动更新使用该布局的所有页面.您可以拥有任意数量的不同布局甚至是嵌套布局.

用标记语言编写内容:内容和布局文件可以用Markdown,Textile或Haml等标记语言编写,让您可以更专注于自己编写的内容.

自动化:webgen可以自动为您生成菜单和面包屑路径.

动态内容:如果需要,可以轻松添加一些动态内容.