【发布时间】:2011-08-17 23:48:08
【问题描述】:
我正在使用动态 HTML 模板系统(如 PHP),我想知道这个问题/解决方案是否有名称或已经在某个地方完成。
问题与动态控制内容有关,但在内容和代码交织在一起之后。想一想两个页面,一个使用许多花哨的样式和框架,另一个没有,但共享相同的“外包装”模板。
<!DOCTYPE html>
<html>
<head>
<title>Both pages share a static title</title>
<script src="..." type="text/javascript">
<script src="..." type="text/javascript">
<script src="..." type="text/javascript">
</head>
<body>
<!-- only this part is dynamic, the top and bottom parts are shared among all pages -->
...
</body>
</html>
计划是在标题所在的位置留下一个标记,在正文中修改一个占位符对象,然后在页面完成渲染之后(但在发送到客户端之前)替换标记所在的占位符内容。
<!DOCTYPE html>
<html>
<head>
__HEAD__
</head>
<body>
<?
$head->title('my very own title');
$head->script('jquery 1.5.2');
?>
...
</body>
</html>
__HEAD__ 标记将扩展为实际的 HTML。
<!DOCTYPE html>
<html>
<head>
<title>my very own title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript">
</head>
<body>
...
</body>
</html>
有人见过吗?
编辑:有人在谈论同样的问题,但解决方案略有不同。
http://iamcam.wordpress.com/2007/07/15/smarty-assigning-variables-to-the-header-from-the-body/
Edit^2:下面接受的答案是,这是 模板引擎 所做的事情,这是真的。这个特定场景的困难在于执行引擎和模板引擎交织在一起(就像老式 PHP 一样),因此很难看到分界线。使用适当的模板即可轻松解决。
【问题讨论】: