【发布时间】:2016-04-21 20:20:55
【问题描述】:
我使用控制器为页面做一些自定义 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 状态。
我最终将其缩小到在 loadView() 方法中调用的 show_404() 辅助方法。删除该行会阻止错误完全出现在日志文件中。
此§show_404()§ 仅应在无法找到视图文件时执行,在这种情况下它应该显示 404 错误页面,它确实如此。但是,无论是否调用了 loadView() 方法,该方法的日志记录部分似乎都会在每次调用页面控制器时执行。
示例
我在浏览器中访问index() 视图,一切正常,加载了正确的视图文件,没有错误。但是,loadView() 方法会记录 404 错误消息。 loadView() 方法甚至没有被 index() 方法调用,但它在日志文件中的输出似乎表明它正在被执行。
【问题讨论】:
标签: php codeigniter