我管理一个传统的网站有很多静态HTML网站,没有服务器端脚本,只是普通的HTML / CSS,JavaScript的最小的。 我发现这是一个巨大的浪费时间来改变同一段代码无数次在不同的页面。 举例来说,当东西在菜单的变化,因为菜单中的每个文档只是静态文本,我必须作出同样的变化多次。
我想知道什么是最好的策略是尽量减少这种开销,在你会推荐用于管理像跨多个静态的HTML页面导航代码的东西等字样。
我知道你可以使用:
- 服务器端脚本(如PHP),但没有其他原因,在特定的网站使用脚本。
- 帧(但是这是不好的,因为它的..好,框架:))
- 服务器端包含(这似乎是更改服务器时,它可能会导致麻烦)
- JavaScript的(坏的搜索引擎优化)
你会推荐什么?
谢谢。
Answer 1:
出的一切准备,无论你上市和其他任何我所知道的,我还只是一个简单的基于PHP的解决方案运行。 这很容易清洁,需要旁边的你的一部分不遗余力。 我这样做是与所有的小网站我设计的。
大多数情况下,你结束了相当琐碎的结构。 你写了一整页,然后为每个后续页面你只是改变了位在中间,其中内容的生活。 在这种情况下,只取上面和下面的内容的一切,并将它保存在header.php文件和footer.php文件,然后把<?php require_once "header.php"; ?>
<?php require_once "header.php"; ?>
在每个内容文件的顶部(以及类似地包含页脚文件)。 完成!
这确实有一些小的缺点。 首先,你要根据脚本,但PHP是世界上部署最广泛的服务器端语言,所以这不是一个真正的问题。 你甚至不关心,如果它是PHP4或PHP5,因为你没有做任何幻想。
二,你正在运行在每一页上加载脚本,以服务本质上是一个静态文件。 这会减慢你的反应,和不必要的强调CPU。 这可能没有多大关系(滞后是非常小的),但如果你发现它浪费了,有这将需要你的PHP生成的页面,并生成静态HTMLS了出来给您带来好PHP框架。 (这是很容易做自己,也与只使用输出缓冲一些工作的。)这样你得到两全其美 - PHP模板(和完整的PHP语言,如果你最终想要的东西票友向下行),但静态HTML页面的最小CPU活动和最快的页面加载时间。
Answer 2:
Answer 3:
如果你是在维护一个静态的站点设置,我会建议使用一个静态的网站发生器。
我有在过去使用的是webgen
从webgen页:
页面布局从内容分离:如果更改布局,使用该布局的所有页面都会自动更新。 你可以有许多不同的布局,甚至嵌套的人的。
写标记语言内容:内容和布局文件可以像降价,纺织或Haml的一种标记语言,它可以让你更专注于你写的东西写。
自动化:webgen可以自动生成,例如,菜单和浏览路径为您服务。
动态内容:这是很容易,如果有需要为它增加一些动态内容。
Answer 4:
你可以你的进行预处理的网站PHP,然后只需上传生成静态HTML文件。
Answer 5:
它已经因为我已经使用了很长一段时间,但Dreamweaver中是用静态的网站合作,一个伟大的工具。 它有这样的使用的注释用于此目的的模板/重复区域机制。
编辑补充:一个小Googling碰了我的记忆。 Dreamweaver有类似于ASP.NET母版页模板。 对于其他内容,它使用的隐喻图书馆和资产 。 由于这是一个静态的网站,你应该能够拿起Dreamweaver中的旧版本上能够满足需求的便宜。
编辑2:我有一个情有独钟Dreamweaver中。 如果StackOverflow的是反专家交流比DW是反的FrontPage。 的Adobe的Adobe是,在这一点上,他们可能已经添加了足够的功能,能够有效削弱它。
Answer 6:
可能没有其他任何理由使用服务器端脚本,但肯定减少编写的代码量是相当大的理由来使用它不会这么认为吗? 它将使维护网站更加高效。
Answer 7:
总的来说,我会建议PHP - 其处理为包括正是你需要的东西,它使任何动态的多,更容易管理。
这也是非常容易地找到与安装了PHP主机。
Answer 8:
正如其他人所说的,静态网站生成器是要走的路。
DocPad是新的静态网站发生器,内置的Node.js和CoffeeScript的是能够支持最先进的标记一样的CoffeeScript , coffeekup , 玉石和手写笔与通常一起降价和HAML等的支持。
如果你是完全新的静态网站生成器的概念,并想知道什么模板引擎和元数据, 给这个文章一读。
Answer 9:
Answer 10:
什么是用PHP的大问题? 在我看来,用一个简单的PHP包括可以为您节省大量的时间,而不是编辑大量的文件。 这说得通。
<?php include('navigation.php'); ?>
除此之外,该行吟诗人-r选项是使它的一个,然后将其复制并粘贴到其他页面。
Answer 11:
我会用PHP,每当我的客户会提出我这种类型的网站。 您可以轻松地把所有的经常性的HTML在一个文件中,并通过功能调用它,或者把它放在单独的文件,并把它通过包括/需要/你有什么。
最重要的是,如果任何人你正在维护网站,希望有某种方式,他们可以添加自己的内容。 你已经有足够到位了必要的框架,使对他们来说很简单。
Answer 12:
我用威比这在过去,是非常满意多么容易做出的东西和减少重叠。
Answer 13:
我想说的内嵌框架可以就好了类似的东西在每一页上显示,需要在每一个一个被更新的菜单。 只是删除FRAMEBORDER,大小得当,它应该是不错的。
Answer 14:
我认为,易用性和速度之间进行合理的妥协将包含服务器端,包括第一,那么PHP版本。
至于PHP,我建议你换用auto_append_file所和的auto_prepend_file指令为Apache2的模块内容。
Answer 15:
<?php include('header.php') ?>
//你的内容放在这里
<?php include('sidebar.php') ?>
<?php include('footer.php') ?>
Answer 16:
您可以包括但使用PHP而是BU使用JavaScript静态网页。
这里有一个例子:
<!DOCTYPE html>
<html>
<script src="https://www.w3schools.com/lib/w3.js"></script>
<body>
<div w3-include-html="h1.html"></div>
<div w3-include-html="content.html"></div>
<script>
w3.includeHTML();
</script>
</body>
</html>
Answer 17:
我会把所有抓取的内容到HTML,然后使用JavaScript生成重复的内容。 因此,像这样:
<!doctype html>
<html>
<head>
<title>My website</title>
</head>
<body>
Main content goes here.
<!-- This script should generate the extra elements,
the navigation bar and stuff around the main div. -->
<script src="enhance.js"></script>
</body>
</html>
因此,所有你需要做的是设置标题,写在每一页的主要内容。 剩下的(这可能是不感兴趣的爬虫反正)由JS生成。
文章来源: What is the best way to manage duplicate code in static HTML websites