2012-03-01 71 views
0

我知道这是一个初学者的问题,但我一直在网上搜索,所有我可以找到的是我可以下载的“免费网站模板”。HTML模板文件

现在的问题是: 如何在单个文件中编写HTML段,然后将完全相同的段加载到我选择的任何其他HTML文件中?

这样做的目的是,如果该细分市场发生变化,我只需要更改1个文件,而不是10个/ 100个/ 1000个/等。

例如,我可能希望定义一个菜单栏是这样的:

<a href="./Test1">Test1</a> <br /> 
<a href="./Test2">Test2</a> <br /> 
<a href="./Test3">Test3</a> <br /> 

然后,我就不必不停地重复,在每一个文件相同的代码,我可以链接到这个菜单栏。可能是这样的:

<html> 
    <!-- Load "Menu Bar" file --> 
    <!-- Place the menu bar right here --> 

    Thanks for visiting my web page. Please navigate with the menu bar above. 
</html> 

谢谢。


编辑:尽管听起来很平凡,但我想制作一些HTML页面来管理我的一些个人文件和数据。作为程序员,我们当然不喜欢重复自己。我最初的想法是,这与链接到CSS文件一样简单,但我现在看到它更复杂,尽管我不确定(从技术角度)为什么它必须是。无论如何,因为我将在自己的机器上查看这些文件,所以我想我可以安装像PHP这样的工具来帮助我的工作。

+1

您是否使用了一些服务器端语言?像C#或PHP? – NicoSantangelo 2012-03-01 15:20:06

+0

菜单栏是链接列表,因此您应该使用[list markup](http://css.maxdesign.com.au/listamatic/),而不是换行符。 – Quentin 2012-03-01 15:28:08

+0

@Nicosunshine我希望不会......我的希望是,这将像链接一个CSS文件一样简单。 – Eric 2012-03-01 15:28:13

回答

1

您正在描述server side includes

服务器端包含对于在整个站点中添加常见的代码非常有用,例如页眉,页脚和导航菜单。用法

例子:

<!--#include virtual="../quote.txt" --> 

这会的quote.txt的文本添加到页面 - 如果你将它添加到多个页面,你可以让你改变在这一个文件,它会显示在所有页面都包含在内。

不同的Web服务器对这些服务器有不同的支持和附加功能,因此您需要检查您的文档。

需要动态的功能(如从数据库中读取数据)

许多网站会使用某种类型的服务器端脚本语言的这种功能 - 的例子包括PHP,Perl中,ASP.NET,JSP等等。

+0

很好......谢谢你提供的术语。这将是非常有益的。 – Eric 2012-03-01 15:40:30

+0

@Eric - 很高兴我能帮到你。 – Oded 2012-03-01 15:41:17

1

有两个地方,你可以这样做:在运行时(它允许快速更新的模板,但需要服务器支持)在构建时

  • 东西(这简化了高速缓存控制和

    1. 服务器端编程不需要任何东西在服务器上运行)

    这两个基本的方法包括(简单)和完整的模板系统(功能强大)。

    对于运行时包含系统,流行的选择是PHP的include函数。另一种方法是SSI。你甚至可以使用a C preprocessor

    模板系统包括PHP's Smarty

    我的首选武器是Template-Toolkit,可以通过Perl的在运行时使用,并配有ttree在构建时使用。

    较不理智的选项涉及让客户端做它,包括frames和JavaScript。

  • 1

    通常使用服务器端脚本语言(如PHP)来动态地包含这些文件。客户端解决方案通常涉及内联框架等,这通常不是优选的。

    1

    这种行为只能(明智地)通过使用诸如php或asp等sevrer边语言来实现。

    处理这种非理智的方式将包括I帧BLECH或框架集双BLECH

    1

    对于你只是用普通的HTML包括:

    <!--#include FILE="menu.inc" --> 
    
    +1

    取决于服务器支持。并非所有服务器都支持SSI。 – Oded 2012-03-01 15:25:18

    +0

    确实,这不是“纯HTML”。另外,大多数支持SSI的服务器在默认情况下不检查SSI指令的'.html'文件。 – Quentin 2012-03-01 15:26:17

    +1

    答案与其他人提出的PHP解决方案形成了鲜明的对比,尽管在问题中只提到了HTML。它没有声明服务器支持(这是一个有效的点) – kaj 2012-03-01 15:41:31

    0

    有你可以做到这一点的几种方法,但首先我们要建立什么样的托管环境,你会上运行您的网站。它也完全依赖于你想要实现的目标 - 你是编程的,还是仅仅在另一个HTML页面中包含一个HTML页面?

    如果您的网站主机允许您运行经典ASP,ASP.NET,PHP,MVC,Ruby或Perl等后端代码,那么每个人都有一个或多个包含文件的方法。

    这是可能的(尽管我很久没有使用过它),您可以在HTML文件中使用SSI指令。这通常取决于网络服务器,而不是语言相关的,您可以阅读更多关于它的文章here。这是包含文件的最简单方法,但是它有很多限制。

    或者,您可以使用AJAX从服务器检索页面并动态更新页面中的HTML。请记住,这依赖于启用了JavaScript的用户,并且需要您付出更多努力。