smarty教程看了好多遍了 页面还是不显示
发布于:2022-01-17 09:50:54
#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
谷歌浏览器提示
HTTP ERROR 500,火狐浏览器直接就是空白,另外$this->getview()->testInstall();也是空白
2016-08-03 16:37:31
#4 HTH1993
肯定看过的,就是按那么来的,论坛也找了一下午了
2016-08-03 16:38:48
#5 HTH1993
对了我用的是linux+nginx+php+mysql sp的框架是3.1
2016-08-03 16:51:04
#6 jake
就是按入门教程来做不行吗?
500错误,可以看看nginx和php的错误日志,搜索一下.log文件看看。
2016-08-03 16:57:49
#7 HTH1993
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
500不记录日志吗?看看配置有没有打开。
另外,可以逐步调试程序,比如说在不同的点echo一下东西出来,然后就die掉,逐步检查问题点。
如果逐步调试模板,也可以把模板一部分一部分地增加或减少,直到出现问题的点。
按程序复杂度来说,入门教程的例子是比较容易逐步调试的,建议直接下载来调试。
2016-08-03 17:35:46
#9 HTH1993
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
'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