请问,大家是如何解决smarty目录结构问题的?多谢了。

请问,大家是如何解决smarty目录结构问题的?多谢了。

smarty静态的模板文件放在templates下,可若是我有一个index.htm文件的话,这个index.htm文件有一张图片,这张图片是放一般按网页设计来说,是放在templates目录下的images目录。
index.htm里的内容是:
<img src="images/index_02.gif" width="631" height="81" />
这样没错吧。

我在根目录下写一个php文件。引用index.htm文件。
<?php
require 'libs/Smarty.class.php';

$tpl = new Smarty;
$tpl->template_dir = 'templates/';
$tpl->compile_dir = "templates_c/";
$tpl->config_dir = "configs/";
$tpl->cache_dir = "cache/";
//$tpl->assign("title","测试用的网页标题");
//$tpl->assign("content","测试用的网页内容");
$tpl->display('index.htm');
?>

这样,问题就出来了,当然就是不能显示图片,因为此时要求图片是在根目录的images下,而不是templates/images目录下。

你说,可以将图片复制到根目录的images下,可,若是要引用的不是图片文件,而是很多的其他文件呢?那此不是要一个个文件来复制?再说,网页设计人员,设计好网页后,就将整个模板网站放在templates目录下了,难道还要求他将一个个的图片结构目录再复制一份去根目录下?修改一次,再复制一次?

问题更严重的是,若index.htm文件里若是包含了一个文件,例如:aaa.php,而这个aaa.php也是要网页设计人员做界面设计后,再由程序员添加代码进去的。此时,却只能将这个文件放在根目录下,而不能将aaa.php这个文件放在templates目录下了。这又不能解决。

请问,大家是如何解决这些问题的呢?多谢了。

同求该解决办法

是个好问题!我也遇到同样的情况。。
我的解决方法是设定一个全局变量PATH_IMG,它记录的是IMAGES文件夹相对于根目录的路径
如define(PATH_IMG,"./template/images/");在模板里面调用的就是{PATH_IMG}XXX.gif
那么无论是模板调用还是PHP文件显示,都是指的是一个不变的固定的路径(当然直接打开模板文件就看不到图片了)

不知道有没有更好的办法,一起等待更好的解决办法!