请教:SAE版的Smarty不编译?

#1 47660666

直接在SAE商店安装的SAE版的SP,但是发现通过controller跳过来的模版没有显示编译后的结果,直接原样输出了;

查SAE的文档,提示:
SAE不支持本地文件写入,Smarty不能直接使用,但可以通过wrapper使用。


现在请问,上面那个东东应该加到什么地方呢?
这个版本的SP不是已经对SAE做过优化可以直接使用了么?

谢谢各位.


补充内容 (2012-4-9 12:25):
http://sae.sina.com.cn/?m=devcenter&catid=11&content_id=213

补充内容 (2012-4-9 12:25):
http://sae.sina.com.cn/?m=devcenter&catid=11&content_id=213

2012-04-09 12:13:12

#2 jake

能通过controller控制器然后再显示出来,就证明已经通过编译了。

sae版sp针对sae平台做了处理的,所以上面的问题不存在。

你看看是否smarty的左右限定符没有设置正确吧,所以才有“没有编译”的错觉。

2012-04-09 13:01:30

#3 47660666

检查过限定符了,没有问题的.
        'view' => array(
                'enabled' => TRUE, // 开启Smarty
                'config' =>array(
                        'template_dir' => APP_PATH.'/tpl', // 模板存放的目录
                        'compile_dir' => APP_PATH.'/tmp', // 编译的临时目录
                        'cache_dir' => APP_PATH.'/tmp', // 缓存的临时目录
                        'left_delimiter' => '<{',  // smarty左限定符
                        'right_delimiter' => '}>', // smarty右限定符
                ),
        ),
Controller里的:
$this->results = $user->findSql($conditions); 
Smarty模板上的:

<{foreach from=$results item=one}>
        <{$one.id}>) <{$one.name}>

<{/foreach}>
页面输出还是这个样子:

<{$one.id}>) <{$one.name}>

2012-04-09 13:25:37

#4 jake

“直接原样输出”而不是出错,那就是“已经编译”了。



2012-04-09 13:46:13

#5 47660666

jake 发表于 2012-4-9 13:46
“直接原样输出”而不是出错,那就是“已经编译”了。

原来是SAE商店那个安装包把Smarty目录丢了


不过现在出现了新的问题 页面空白~~~!

2012-04-09 17:11:22

#6 jake

47660666 发表于 2012-4-9 17:11

原来是SAE商店那个安装包把Smarty目录丢了
页面空白是因为模板语法错误,检查一下限定符周围有没有空格,比如说 <{$var空格}>这样就会出错。

2012-04-09 22:07:58

#7 47660666

1.我把所有的Smarty语句全删了 还是空白

2.然后做了个测试,改了下控制器里跳转的tpl的路径,提示:无法载入模板,这说明 路径也是没有问题的,问题到底是什么呢?

2012-04-10 08:28:03

#8 jake

我只能猜测:
1. 是否只替换sae上面的smarty,而不是整个框架重新放进去?建议你在SAE上面单独开一个版本,然后到我们首页下载sae版框架直接放上去用。而不是修修补补。
2. 空白还是模板出错,那是smarty提示的,建议看看sae后台的日志,看看出错信息。


2012-04-10 08:56:52

#9 47660666

jake 发表于 2012-4-10 08:56
我只能猜测:
1. 是否只替换sae上面的smarty,而不是整个框架重新放进去?建议你在SAE上面单独开一个版本, ...
还是不行 依旧显示空白
我的SP包是从Google Code上拖下来的最新的speedphp-3.1.89-sae.zip 确实是SAE专用的了 Smarty的目录也在 没丢失
也开启了
Memcache


几乎没写什么代码啊
这个是index.php 配置文件

define("APP_PATH",dirname(__FILE__)); 
define("SP_PATH",dirname(__FILE__).'/SpeedPHP');
$spConfig = array(
        "db" => array( // 数据库设置
                'host' => 'SAE_MYSQL_HOST_M',  // 数据库地址
                'login' => 'SAE_MYSQL_USER', // 数据库用户名
                'password' => 'SAE_MYSQL_PASS', // 数据库密码
                'database' => 'SAE_MYSQL_DB', // 数据库的库名称
        ),
        'view' => array(
                'enabled' => TRUE, // 开启Smarty
                'config' =>array(
                        'template_dir' => APP_PATH.'/tpl', // 模板存放的目录
                        'compile_dir' => APP_PATH.'/tmp', // 编译的临时目录
                        'cache_dir' => APP_PATH.'/tmp', // 缓存的临时目录
                        'left_delimiter' => '<{',  // smarty左限定符
                        'right_delimiter' => '}>', // smarty右限定符
                ),
        ),
);
require(SP_PATH."/SpeedPHP.php");
spRun();


然后Controller里:
class main extends spController
{
        function index(){ // 这里是首页
                $link = spClass('link'); // 初始化模型类
                $conditions = ("select * from  link order by linkid asc");
                $this->results = $link->findSql($conditions); // 用$this->results发送到模板
                $this->display("tpl/index.html");
        }
}
调用的Smarty 那个index.html里的语句也是对的啊:
<{foreach from=$results item=one}>
    <{$one.linkid}> <{$one.linkname}>

                <{/foreach}>


1 页面空白!!!
2 删掉模板里的Smarty语句,还是空白,奇了怪了!!!

哎... 快烦死了


2012-04-10 10:22:50

#10 jake

sp群内网友 “蓝调” 提供解决方法。

'view' => array( // 视图配置
'enabled' => TRUE, // 开启视图
'config' =>array(
'template_dir' => APP_PATH.'/static/html', // 模板目录
'compile_dir' => 'saemc://templates_c', // 编译目录
'cache_dir' => 'saemc://cached', // 缓存目录
'left_delimiter' => '<{',  // smarty左限定符
'right_delimiter' => '}>', // smarty右限定符
'auto_literal' => TRUE, // Smarty3新特性

2012-04-10 11:33:45

#11 47660666

问题解决了 在这留个脚印,希望后面的人能用到:
在SAE上Smarty出问题:
1.确保SP是SAE专版
2.index的配置要正确:
'view' => array(
                'enabled' => TRUE, // 开启Smarty
                'config' =>array(
                        'template_dir' => APP_PATH.'/tpl', // 模板目录
                        'compile_dir' => 'saemc://templates_c', // 编译目录
                        'cache_dir' => 'saemc://cached', // 缓存目录
                        'left_delimiter' => '<{',  // smarty左限定符
                        'right_delimiter' => '}>', // smarty右限定符
                        'auto_literal' => TRUE, // Smarty3新特性
                ),
        ),
3.开启Memcache
4.检查语法 限定符

2012-04-10 11:35:24

#12 jake

47660666 发表于 2012-4-10 11:35
问题解决了 在这留个脚印,希望后面的人能用到:
在SAE上Smarty出问题:
1.确保SP是SAE专版
{:soso_e179:}

2012-04-10 11:40:29

#13 诗人的咸鱼

jake 发表于 2012-4-10 11:40
我能说    我都那样做了  还是挂着呢么...    memcache  是只要在SAE 设置开关就行了  Speed 不用设置哈?   还是不行啊...

2012-08-23 19:14:42

#14 诗人的咸鱼

诗人的咸鱼 发表于 2012-8-23 19:14
我能说    我都那样做了  还是挂着呢么...    memcache  是只要在SAE 设置开关就行了  Speed 不用设置哈 ...
一片空白...  然后echo 可以显示.  模板在本地 也没问题啊...  就是空白啊.

2012-08-23 19:21:56

#15 诗人的咸鱼

jake 发表于 2012-4-10 11:40
又重新覆盖了一遍  好了...  麻烦你了
吐槽一下这个验证码....  

2012-08-23 19:41:34

#16 jjf012

建议版主更新到手册里面,刚才我被手册误导了好久。:@

2013-01-14 22:58:56

#17 jake

jjf012 发表于 2013-1-14 22:58
建议版主更新到手册里面,刚才我被手册误导了好久。
mark!

2013-01-15 08:43:46

#18 WCPSOFT

47660666 发表于 2012-4-10 11:35
问题解决了 在这留个脚印,希望后面的人能用到:
在SAE上Smarty出问题:
1.确保SP是SAE专版
首先说明一下,经过测试楼主您的smarty为编译并不是版本问题,而是您没有按照SAE官方开发文档正确配置。@jake
正确配置应该是:
'template_dir' => SAE_TMP_PATH,                                                 // 模板存放的目录
'compile_dir' => SAE_TMP_PATH,                                                         // 编译的临时目录
'cache_dir' => SAE_TMP_PATH,                                                                 // 缓存的临时目录
导致的问题:
[table=98%]
[td][tr=rgb(249, 249, 249)][td=180]说明[/td][td=180]常量名[/td][/tr]
[tr=rgb(249, 249, 249)][td]SAE临时目录路径[/td][td][/td][/tr]
[tr][td]Access Key[/td][td][/td][/tr]
[tr=rgb(249, 249, 249)][td]Secret Key[/td][td][/td][/tr]
[tr][td]MySQL用户名[/td][td][/td][/tr]
[tr=rgb(249, 249, 249)][td]MySQL密码[/td][td][/td][/tr]
[tr][td]MySQL主库域名[/td][td][/td][/tr]
[tr=rgb(249, 249, 249)][td]MySQL从库域名[/td][td][/td][/tr]
[tr][td]MySQL端口[/td][td][/td][/tr]
[tr=rgb(249, 249, 249)][td]MySQL数据库名[/td][td][/td][/tr]
[tr][td=2,1]
[/td][/tr]
[/table]

2013-01-17 23:47:30

#19 WCPSOFT

jake 发表于 2013-1-15 08:43
mark!
jake,首先说明一下,经过测试smarty为编译并不是版本问题,与speedphp的版本没有关系的,而是楼主没有按照SAE官方开发文档正确配置。
正确配置应该是:
'template_dir' => SAE_TMP_PATH,                                                 // 模板存放的目录
'compile_dir' => SAE_TMP_PATH,                                                         // 编译的临时目录
'cache_dir' => SAE_TMP_PATH,                                                                 // 缓存的临时目录

2013-01-17 23:49:49

#20 jake

WCPSOFT 发表于 2013-1-17 23:49
jake,首先说明一下,经过测试smarty为编译并不是版本问题,与speedphp的版本没有关系的,而是楼主没有按 ...
嗯,现在的sae支持多种代替本地读写的方式,所以你的方式和楼上的方式都值得参考。

2013-01-18 03:12:48