我正在为已经等待的模板编写模板引擎。
现在,在您说这是多么重要之前。我得到报酬,但我不知道他们为什么坚持拥有自己的一个(可能是因为模板已经完成并且他们已经标记了它)。
他们已经像这样标记了模板:
索引.html
<html>
<head><title> [title] </title></head>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<body>
<img class="header" src="images/header.jpg" />
[contents]
</body>
</html>
我正在使用一种非常简单的查找和替换方法,并且效果很好:
索引.php
$e = new tengine ;
$e->load_template('index.html');// basically file_get_contents
$e->replace('title' , 'zzzzzzz');
$e->replace( 'contents' , 'xxxx');
$e->show();
当它们在同一目录中时,它可以正常工作。
现在我想将我的资产移动到另一个名为模板的目录。
所以我必须这样称呼我的模板:
index.php
$e->load_template('template/index.html');
现在呈现模板的页面 (index.php) 与模板文件 (index.html) 不在同一目录中。
它仍然有效,但是我丢失了模板页面中的所有样式和图像以及 .js,因为它们位于模板目录中,并且我将页面呈现在它们上方的一个目录中。
有什么解决方法吗?请记住,模板已经完成,创建某种 GLOBALbase_url
类并更改所有图像和 .js/.css 链接是不可能的。