我使用控制器为页面做一些自定义 uri 路由,它目前运行良好。
这是一个精简版的控制器,它使用 PHPTAL 作为模板引擎。
public function index()
{
$this->tal->display('index');
}
public function view($url)
{
$this->loadView($url);
}
private function loadView($url)
{
if (file_exists(ROOTPATH . 'webroot/' . $url . '/index.html'))
{
$this->tal->display($url . '/index');
}
else
{
show_404();
}
}
问题
我最近注意到每次访问页面控制器时,我的日志中都会出现以下错误:
ERROR - 2013-02-06 10:58:23 --> 404 Page Not Found -->
我发现这很奇怪,因为页面按预期显示,并且肯定没有 404 标题,网络面板也没有 404 状态。
我最终将其缩小到show_404()
方法中调用的辅助loadView()
方法。删除该行会阻止错误完全出现在日志文件中。
此§show_404()§ 仅应在无法找到视图文件时执行,在这种情况下,它应该显示 404 错误页面,它确实如此。但是,无论是否调用该方法,该方法的日志记录部分似乎都会在每次调用页面控制器时执行loadView()
。
例子
我index()
在浏览器中访问视图,一切正常,加载了正确的视图文件,没有错误。但是,该方法会记录 404 错误消息loadView()
。该loadView()
方法甚至没有被该index()
方法调用,但其输出在日志文件中的存在似乎表明它正在被执行。