未找到文件错误消息未出现在 Code Igniter 中

Posted

技术标签:

【中文标题】未找到文件错误消息未出现在 Code Igniter 中【英文标题】:File not found error message does not appear in Code Igniter 【发布时间】:2019-03-19 02:57:17 【问题描述】:

我正在学习 Code Igniter。基本上我想要做的是当用户转到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 文件夹。

因此,当我转到尚不存在的 http://localhost/codeigniter/pages/about 等自定义 URL 时,我应该得到一个 404 Page Not Found 消息。

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

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

【问题讨论】:

【参考方案1】:

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

再深入一点,CI 已经有一个错误处理程序(您可以更改的预制模板位于/views/error,您可以根据错误类型制作不同的错误页面

【讨论】:

换句话说,将浏览器指向 localhost/codeigniter/pages/about 以进行有效测试。【参考方案2】:

您的网址

http://localhost/codeigniter/pages/about

上面的网址不正确,用这个代替上面的

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

网址格式

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

Protocol = http://

Domain = localhost/codeigniter (In localhost)

Class = pages

Method = view

Var1 = about

var2 = '' (if any)

【讨论】:

以上是关于未找到文件错误消息未出现在 Code Igniter 中的主要内容,如果未能解决你的问题,请参考以下文章

http.server “代码 404,未找到消息文件”

Android Logcat 错误消息:“文件... driverlist.txt 未找到!”

是啥导致 Access 2010 中出现“在任何记录中未找到搜索键”错误?

关于一个多个.cpp文件的项目中,函数出现未定义引用错误

错误未找到移动配置文件

thymeleaf 版本 2.14 到 3.0 的迁移未找到消息属性