有你创造
丰收的季节
当前位置:网站首页 > 活动策划 > 正文

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

cndao cndao ⋅ 2023-03-13 01:32:17

要解决的问题如下图:

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

404 Not Found

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


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


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


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

解决办法:

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

修改文件

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


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

原因解析:上图第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。

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


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

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

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

或者是:(推荐)

return $response;

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

cndao

cndao

TA太懒了...暂时没有任何简介

精彩新闻