李成笔记网

专注域名、站长SEO知识分享与实战技巧

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法

要解决的问题如下图:

解决后的效果,举例如下:




解决办法:

假设根目录是D:\project\thinkcmf6。

修改文件

D:\project\thinkcmf6\vendor\topthink\framework\src\think\exception\Handle.php


原因解析:上图第211行

if ($exception instanceof HttpException) {
    $statusCode = $exception->getStatusCode();//值为404
    $response->header($exception->getHeaders());
}

导致第218行的$statusCode的值要么是404要么是500。

修改代码的核心要点:强制响应码为默认值200。

要追加的的代码可以是:

//不太推荐添加这一行if开头的代码,
if (true === $this->app->isDebug()){
  //重点就是这一行代码,强制响应码为默认值200
    $statusCode = $response->getCode();
}

如果.env文件中的APP_DEBUG=false,则仍然显示404 Not Found。

如果想要显示得更加友好一些,如下图


要追加的的代码可以是:(推荐)

//重点就是这一行代码,强制响应码为默认值200
$statusCode = $response->getCode();

或者是:(推荐)

return $response;

好了,去试试吧,为了愉快地进行开发业务。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言