找不到文件错误消息未出现在代码点火器中

时间:2018-10-14 14:51:57

标签: php codeigniter http-status-code-404 codeigniter-3

我正在学习代码点火器。基本上,我想做的是当用户转到views目录中不存在的URL时显示 404 错误消息。

因此,我在application/controllers/处创建了一个名为Pages.php的新文件,如下所示:

<?php
class Pages extends CI_Controller
{
    public function view($page = 'home')
    {
        if(!file_exists(APPPATH.'views/pages/'.$page.'.php'))
        {
            show_404();
        }

        $data['title'] = ucfirst($page);

        $this->load->view('templates/header');
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer');
    }
}
?>

然后,我在 views 目录中创建了一个名为templates的文件夹,其中包含一个header.php文件和一个footer.php文件。我还在同一目录下创建了一个pages文件夹。

当我转到尚不存在的自定义URL(例如http://localhost/codeigniter/pages/about)时,应该得到一条 404页面未找到的消息。

但是问题是,浏览器显示的是找不到对象!,而不是那个。

那么这有什么问题,我该如何解决此问题?

2 个答案:

答案 0 :(得分:1)

这不是CI的工作方式。对于初学者,pages/about不存在。常规URI方案为Controller / method,因此您需要指向pages/view

更深入地讲,CI已经具有错误处理程序(可以更改的预制模板位于/views/error中,并且可以根据错误类型创建不同的错误页面

答案 1 :(得分:0)

您的网址

http://localhost/codeigniter/pages/about

上面的网址不正确,请使用上面的网址代替

http://localhost/codeigniter/pages/view/about

URL格式

protocol://domain/class/method/var1/var2/...

Protocol = http://

Domain = localhost/codeigniter (In localhost)

Class = pages

Method = view

Var1 = about

var2 = '' (if any)