Php 找不到模板错误-无脂肪框架
我已经完成了无脂肪框架文档中的示例,有一个示例我无法使用。具体如下:Php 找不到模板错误-无脂肪框架,php,fat-free-framework,Php,Fat Free Framework,我已经完成了无脂肪框架文档中的示例,有一个示例我无法使用。具体如下: $f3=require('lib/base.php'); $f3->route('GET /', function($f3) { $f3->set('name','world'); $template=new Template; echo $template->render('template.htm'); // Above lines
$f3=require('lib/base.php');
$f3->route('GET /',
function($f3) {
$f3->set('name','world');
$template=new Template;
echo $template->render('template.htm');
// Above lines can be written as:
// echo Template::instance()->render('template.htm');
}
);
$f3->run();
我收到一个找不到模板的错误。错误指向template.htm文件正在渲染的行,并抱怨Preview->render(即其超类,而不是template->render)。我甚至没有在代码库中看到预览类的文件
有趣的是,如果我对视图示例(如下)使用相同的文件,它就可以正常工作
$f3=require('lib/base.php');
$f3->route('GET /',
function($f3) {
$f3->set('name','world');
$view=new View;
echo $view->render('template.htm');
// Previous two lines can be shortened to:
// echo View::instance()->render('template.htm');
}
);
$f3->run();
然而,如果我要使用这个框架,我希望能够利用它的模板功能
有此框架经验的人是否知道会出现什么问题?我从Github()下载了代码。使用.html而不是.htm。是的,这真的很重要。我没有使用无脂肪框架的经验,但是有一个关于如何调试这个问题的通用指针
显然,无脂框架中的某些代码引发了“未找到文件”异常。试着用无脂肪框架3.5.1版调试我遇到的问题 出现此问题的原因是,框架OOB(至少在这个版本中)与一个示例连接在一起,以便在根无脂肪框架文件夹的“ui/”子文件夹中查找模板 是什么告诉我的?好。。。OOB config.ini包含以下内容:
[globals]
DEBUG=3
UI=ui/
要轻松解决此问题,请执行以下操作之一:
提示:确保指定的任何UI路径都以a/结尾,如果需要指定多个路径,可以使用|或或;分隔符(确保每个路径以/)结尾。默认情况下,F3使用主文件所在的文件夹(启动框架实例的文件夹)。您可以通过为
UI
参数设置新路径来更改此行为。简言之:
$f3 = \Base::instance();
$f3->set('UI', path_to_your_templates);
假设您具有以下结构:
- app
-- views
--- template.htm (your template)
- public
-- index.php (where your init the framework)
-- (template files are expected here by default)
public/index.php看起来像:
$f3 = \Base::instance();
$f3->set('UI', __DIR__.'/../app/views/');
$f3->route('GET /',
function($f3) {
echo Template::instance()->render('template.htm');
}
希望有帮助。你为什么这么说?没关系。框架不关心模板文件扩展名。因为我很确定我们过去有过这个问题,可以通过将文件重命名为.html来解决。我可以看到
视图
和模板
之间的一个区别是后者需要临时
目录(默认值:tmp/
)。请确保此目录存在且可写。使用模板
类时,请确保UI
var设置为Template.htm
文件所在的路径。这两条注释都帮助我解决了问题!!非常感谢你!如果你们中有人想将两者结合成一个解决方案,我将标记为正确。