是否有 require_once 的 HTML 变体?
Posted
技术标签:
【中文标题】是否有 require_once 的 HTML 变体?【英文标题】:Is there a HTML variant of require_once? 【发布时间】:2012-02-20 20:14:12 【问题描述】:在 html 中是否有这样一行代码可以与 php 的 require_once 做同样的事情?我只是好奇,因为我想通过多张纸复制一些代码行,而无需要求自己在每一页都输入。
我知道我可以通过 PHP 做到这一点,但我正在寻找一个 HTML 变体?有这样的野兽还是我吠错了树?
【问题讨论】:
HTML 没有 any 机制来做包含。为此,您需要 SSI、PHP 或其他一些内嵌脚本技术。或者你可以在使用 javascript 时啜饮一些东西,并在那里实现你的 require_once 功能。但这不是 HTML。 这个问题有什么问题? 必须有一个 HTML 等价于require
first...
我第二个 jeroen 的问题:为什么对这个问题投反对票? -2 似乎并不值得。 +1 恢复平衡!
...不过,我可以看到有些人可能会反对使用模棱两可的词“床单”和使用require_once
而不是require
(这似乎是个问题)
【参考方案1】:
这取决于您要包含的内容。包含 PHP 文件是不可能的,如果您想包含 CSS 样式表,请使用:
<link rel="stylesheet" type="text/css" href="yourstylefile.css" />
对于 Javascript 文件
<script type="text/javascript" src="yourscriptfile.js"></script>
当然,您必须将该代码放在标题标签之间。
【讨论】:
【参考方案2】:不,HTML 中没有包含机制。除非你算上 SSI。
编辑:等等,“床单”?你是说 CSS 吗?
【讨论】:
不,对不起,我的意思是页面,我工作时间很长,并且患有偏头痛,我当时记不起正确的术语。我的意思是页面,而不是工作表。【参考方案3】:是的,SSI 是最接近的。但是,有许多非服务器端的方法可以解决这个问题。一些 Web 开发应用程序具有 html 模板系统,可以在开发端复制服务器端包含的内容。例如,dreamweaver 允许您将可重复区域插入 HTML 模板。当您修改“包含”文件时,Dreamweaver 将修改所有使用该块的 HTML 文件。由于这不是一个真正的包含,而是一个 HTML 更新系统,如果您使用远程服务器,您必须重新上传这些文件,但如果您必须坚持使用纯 HTML,它可以使项目更易于管理和比使用 iframe 要好得多。
最后,还有让 Javascript 构建重复代码块的选项。您可以简单地在每个页面 <script type="text/javascript" src="templater.js"></script>
上包含一个通用 javascript 库,并让它在客户端构建元素(通过 innerHTML 调用或将元素插入 DOM)。这有一个明显的缺点
-
它需要 Javascript 才能工作
可能会与 SEO 混淆
它可能会减慢页面加载速度(无论如何从客户端)
在服务器端语言中使用适当的包含当然是最好的方法,但在紧要关头,这些都是潜在的替代方案。
【讨论】:
【参考方案4】:从技术上讲,您可以在页面上创建一个 iframe,该 iframe 将加载和处理单独的页面,但它的功能不像 include 或 require 一次。对此,我知道没有其他选择。
【讨论】:
以上是关于是否有 require_once 的 HTML 变体?的主要内容,如果未能解决你的问题,请参考以下文章