于是找了上面两个文档进行学习,(我的搭建方法是参考了文档PHP模板之Smarty安装与使用入门教程)
Smarty我删掉了SpeedPhp自带的(SpeedPHP/Drivers 目录下可以看到),从官网重新下载,
不过在搭建好后出了问题,SAE不支持本地文件写入
define('SMARTY_ROOT', APP_PATH.'/smarty/tpls');
include(APP_PATH.'/smarty/libs/Smarty.class.php');
$tpl = new Smarty();
$tpl->template_dir = SMARTY_ROOT."/templates/";
$tpl->compile_dir = SMARTY_ROOT."/templates_c/";
$tpl->config_dir = SMARTY_ROOT."/configs/";
$tpl->cache_dir = SMARTY_ROOT."/cache/";
$tpl->caching=1;
$tpl->cache_lifetime=60*60*24;
$tpl->left_delimiter = '<{';
$tpl->right_delimiter = '}>';
$tpl->display("leapsoul.tpl");
User error: Smarty error: the $compile_dir '/****************/1/smarty/tpls/templates_c/' does not exist, or is not a directory. in smarty/libs/Smarty.class.php on line 1094
参照针对SAE程序员常问的问题 的解决方法,
不直接定义编译目录路径 $tpl->compile_dir = SMARTY_ROOT."/templates_c/";
改成:
$path="saemc://templates_c";
mkdir($path);
$tpl->compile_dir = $path;
并注释掉
//$tpl->caching=1;
再运行便可以了。
更改后代码片如下:
define('SMARTY_ROOT', APP_PATH.'/smarty/tpls');
include(APP_PATH.'/smarty/libs/Smarty.class.php');
$tpl = new Smarty();
$path="saemc://templates_c";
mkdir($path);
$tpl->compile_dir = $path;
$tpl->template_dir = SMARTY_ROOT."/templates/";
$tpl->config_dir = SMARTY_ROOT."/configs/";
$tpl->cache_dir = SMARTY_ROOT."/cache/";
// $tpl->caching=1;//加了这句就不行,待解决
$tpl->cache_lifetime=60*60*24;
$tpl->left_delimiter = '<{';
$tpl->right_delimiter = '}>';
$tpl->display("leapsoul.tpl");