【问题标题】:How to create a template in HTML?如何在 HTML 中创建模板?
【发布时间】:2013-04-14 11:35:47
【问题描述】:

我开始用纯 HTML 创建网页。我有页眉、主要内容和页脚。主要内容分为左右两部分。除了正确的内容外,所有页面上的所有内容都相同。现在我有大约 15 页。如果我对其他静态页面(页眉、页脚和左侧内容)进行一些更改,这将非常烦人,因为我必须浏览所有页面。

如何为每个静态区域创建一个 HTML 文件以及如何集成它?

【问题讨论】:

    标签: html templates


    【解决方案1】:

    有几种方法可以做到这一点。

    如果您纯粹使用 HTML,那么您可以使用“服务器端包含”——这是一个允许您将文件加载到页面中的标签(请参阅http://en.wikipedia.org/wiki/Server_Side_Includes)。托管您网站的任何人都必须支持这一点。

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

    如果你的虚拟主机碰巧使用 PHP,你可以使用 include 方法(见http://php.net/manual/en/function.include.php):

    <?php include('path_to_file/file.htm');?>
    

    这将包括您放置标签的位置的文件。但同样,托管您网站的任何人都需要支持这一点。

    还有其他方法可以做到这一点,这就是我使用的两个。

    【讨论】:

    • 我目前正在使用 wampserver 在本地计算机上构建站点。我已按照步骤执行此操作,但似乎不起作用。是否有必要将所有文件重命名为 .shtml?由于已经运行多年的旧网站,我想保留 html 扩展名,我不希望浪费谷歌缓存。我已将此添加到 wamp apache 配置中:AddType text/html .shtml Options +Includes AddOutputFilter INCLUDES .shtml
    • 碰巧...我也使用 WAMP 服务器 :) &lt;?php include('path.htm') ?&gt; 是最简单的方法,因为 PHP 应该默认启用。这样就无需修改 Apache 配置文件。如果使用这种方法,则无需修改文件的扩展名。
    • 尝试在INCLUDES 之后将.shtml 替换为.html。这应该使服务器在扩展名为 .html 的文件中包含文件
    【解决方案2】:

    基本上,您可以在三个地方执行此操作:

    1. 在构建时。运行将页面放在一起并输出静态 HTML 的脚本。然后将静态 HTML 上传到服务器。早在 2013 年,我就推荐了 ttree,但现在 static site builders 很常见,而且更强大。我的项目倾向于Gatsby(用于复杂项目)和Metalsmith(用于更简单的项目)。 Jekyll 非常受欢迎(Github 提供了 documentation 用于与 GH Pages 一起使用)。
    2. 在服务器上运行时。这可能是一个简单的SSI、一个PHP include 或一个完整的模板系统(其中有很多,包括Template Toolkitmustache),可能在MVC 框架内运行(例如Catalyst 或@ 987654332@)。这是最常见的方法,它在进行更改和将结果投入使用之间的时间比在构建时进行模板化的时间更短。
    3. 在客户端运行时。这增加了对客户端 JavaScript 的依赖(can be fragile 并且对搜索引擎不友好),所以我不会推荐它,除非你已经有了 a server-side or build-time solution。例如,Gatsby 是一个静态站点生成器,它构建由静态页面支持的 React 前端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多