smarty教程看了好多遍了 页面还是不显示

#1 HTH1993

index.php的配置如下
define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
define("APP_PATH",dirname(__FILE__));
$spConfig = array(
        "db" => array(
                'host' => '',
                'login' => '',
                'password' => '',
                'database' => '',
        ),
        '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右限定符
                ),
                 'engine_name' => 'Smarty',
                        'engine_path' => SP_PATH.'/Drivers/Smarty/Smarty.class.php',
        ),
);
require(SP_PATH."/SpeedPHP.php");
spRun(); // SpeedPHP 3新特性   




然后在main.php中的function
$this->display("a.html");

这个a在tpl文件夹中,而且所有文件夹都是777权限,求高手赐教,搞了一天了,头都快炸了

2016-08-03 16:24:04

#2 jake

错误提示是什么?或者说页面提示是什么?
或者说我们的入门教程你看过了吗?按留言本的smarty有显示吗?

2016-08-03 16:33:25

#3 HTH1993

jake 发表于 2016-8-3 16:33
错误提示是什么?或者说页面提示是什么?
或者说我们的入门教程你看过了吗?按留言本的smarty有显示吗?
...
谷歌浏览器提示HTTP ERROR 500,火狐浏览器直接就是空白,另外$this->getview()->testInstall();也是空白

2016-08-03 16:37:31

#4 HTH1993

jake 发表于 2016-8-3 16:33
错误提示是什么?或者说页面提示是什么?
或者说我们的入门教程你看过了吗?按留言本的smarty有显示吗?
...
肯定看过的,就是按那么来的,论坛也找了一下午了

2016-08-03 16:38:48

#5 HTH1993

jake 发表于 2016-8-3 16:33
错误提示是什么?或者说页面提示是什么?
或者说我们的入门教程你看过了吗?按留言本的smarty有显示吗?
...
对了我用的是linux+nginx+php+mysql sp的框架是3.1

2016-08-03 16:51:04

#6 jake

HTH1993 发表于 2016-8-3 16:38
肯定看过的,就是按那么来的,论坛也找了一下午了
就是按入门教程来做不行吗?

500错误,可以看看nginx和php的错误日志,搜索一下.log文件看看。

2016-08-03 16:57:49

#7 HTH1993

jake 发表于 2016-8-3 16:57
就是按入门教程来做不行吗?

500错误,可以看看nginx和php的错误日志,搜索一下.log文件看看。
nginx的错误日志看了,没什么问题,php-fpm.php中大部分都是没有这个文件活着路径这样的错误,还有一个问题就是这些错误都是两点多的,现在都五点多了,居然没更新错误,我一直都在刷新页面出现500错误的

[03-Aug-2016 14:54:24] WARNING: [pool www] child 12933 said into stderr: "ERROR: Unable to open primary script: /data/wwwroot/default/js/messages.php (No such file or directory)"
[03-Aug-2016 14:54:24] WARNING: [pool www] child 12930 said into stderr: "ERROR: Unable to open primary script: /data/wwwroot/default/js/whitelist.php (No such file or directory)"
[03-Aug-2016 14:58:11] WARNING: [pool www] child 12951 said into stderr: "ERROR: Unable to open primary script: /data/wwwroot/default/index.php (No such file or directory)"



2016-08-03 17:23:09

#8 jake

HTH1993 发表于 2016-8-3 17:23
nginx的错误日志看了,没什么问题,php-fpm.php中大部分都是没有这个文件活着路径这样的错误,还有一个问 ...
500不记录日志吗?看看配置有没有打开。
另外,可以逐步调试程序,比如说在不同的点echo一下东西出来,然后就die掉,逐步检查问题点。

如果逐步调试模板,也可以把模板一部分一部分地增加或减少,直到出现问题的点。

按程序复杂度来说,入门教程的例子是比较容易逐步调试的,建议直接下载来调试。

2016-08-03 17:35:46

#9 HTH1993

jake 发表于 2016-8-3 17:35
500不记录日志吗?看看配置有没有打开。
另外,可以逐步调试程序,比如说在不同的点echo一下东西出来,然 ...
echo "nihao";
                $guestbook = spClass("guestbook");
                echo "nihao2";
                $this->results = $guestbook->findAll(); // 用$this->results可以将$guestbook->findAll()的值发送到模板上面,模板上可以用$results来使用该值。
                echo "nihao3";
                $this->display("white/index.html"); // 显示模板,这里使用的模板是根目录/tpl/green/index.html。
                echo "nihao4";

我现在把例子完完全全拷贝下来,放入了SpeedPHP框架的文件夹,main的index方法中写了以上的代码,发现输出的是:nihaonihao2  也就是说到“$this->results = $guestbook->findAll();”就执行不成功了。     但是!!如果把“$this->results = $guestbook->findAll();”换成“$results = $guestbook->findAll();“页面的输出结果是nihaonihao2nihao3,说明这句话又能成功执行


总感觉有什么东西没有加载成功

2016-08-03 17:53:21

#10 jake

在display之前dump($this);,检查一下看看模板引擎有没有加载成功。
另外,程序应该在调试模式下吧? http://www.speedphp.com/thread-3833-1-1.html

2016-08-03 18:09:47

#11 HTH1993

jake 发表于 2016-8-3 18:09
在display之前dump($this);,检查一下看看模板引擎有没有加载成功。
另外,程序应该在调试模式下吧? http: ...
'mode' => ‘debug’这个是默认的,还需要开启什么吗,
另外dump($this)打印如下:能看出是否加载成功没?
main Object(    [v] => Smarty Object        (            [auto_literal] => 1            [error_unassigned] =>             [use_include_path] =>             [template_dir:Smarty:private] => Array                (                    [0] => /data/wwwroot/default/test.beacon.com/tpl/                )            [joined_template_dir] => /data/wwwroot/default/test.beacon.com/tpl/            [joined_config_dir] => ./configs/            [default_template_handler_func] =>             [default_config_handler_func] =>             [default_plugin_handler_func] =>             [compile_dir:Smarty:private] => /data/wwwroot/default/test.beacon.com/tmp/            [plugins_dir:Smarty:private] => Array                (                    [0] => /data/wwwroot/default/test.beacon.com/SpeedPHP/Drivers/Smarty/plugins/                )            [cache_dir:Smarty:private] => /data/wwwroot/default/test.beacon.com/tmp/            [config_dir:Smarty:private] => Array                (                    [0] => ./configs/                )            [force_compile] =>             [compile_check] => 1            [use_sub_dirs] =>             [allow_ambiguous_resources] =>             [caching] =>             [merge_compiled_includes] =>             [cache_lifetime] => 3600            [force_cache] =>             [cache_id] =>             [compile_id] =>             [left_delimiter] => <{            [right_delimiter] => }>            [security_class] => Smarty_Security            [security_policy] =>             [php_handling] => 0            [allow_php_templates] =>             [direct_access_security] => 1            [debugging] =>             [debugging_ctrl] => NONE            [smarty_debug_id] => SMARTY_DEBUG            [debug_tpl] => file:/data/wwwroot/default/test.beacon.com/SpeedPHP/Drivers/Smarty/debug.tpl            [error_reporting] =>             [get_used_tags] =>             [config_overwrite] => 1            [config_booleanize] => 1            [config_read_hidden] =>             [compile_locking] => 1            [cache_locking] =>             [locking_timeout] => 10            [template_functions] => Array                (                )            [default_resource_type] => file            [caching_type] => file            [properties] => Array                (                )            [default_config_type] => file            [template_objects] => Array                (                )            [cache_modified_check] =>             [registered_plugins] => Array                (                )            [plugin_search_order] => Array                (                    [0] => function                    [1] => block                    [2] => compiler                    [3] => class                )            [registered_objects] => Array                (                )            [registered_classes] => Array                (                )            [registered_filters] => Array                (                )            [registered_resources] => Array                (                )            [_resource_handlers] => Array                (                )            [registered_cache_resources] => Array                (                )            [_cacheresource_handlers] => Array                (                )            [autoload_filters] => Array                (                )            [default_modifiers] => Array                (                )            [escape_html] =>             [start_time] => 1470222015.2531            [_file_perms] => 420            [_dir_perms] => 505            [_tag_stack] => Array                (                )            [smarty] => Smarty Object *RECURSION*            [_current_file] =>             [_parserdebug] =>             [merged_templates_func] => Array                (                )            [template_class] => Smarty_Internal_Template            [tpl_vars] => Array                (                )            [parent] =>             [config_vars] => Array                (                )        )    [layout] =>     [__template_vals:spController:private] => Array        (        ))

2016-08-03 18:59:37

#12 jake

mode显式设成debug吧

这里看到smarty已经成功加载了,具体为什么500,除了看日志以外,也可以先把模板清空,然后慢慢一点点加东西回去这样调试。

还是听一下我的建议:初学者建议最好从xampp这样简单的环境开始学习,一下子linux什么的连错误提示都开不了,也就没有了学习的途径了。

2016-08-03 21:56:18