TP6关闭debug跳转全报错,如何解决?

最近研究TP6,开启debug一切正常,关闭debug后,success() error() redirect()跳转全部报错:"msg":"服务器内部错误","error_code":999,"request_url":....不知如何才能解决???

尝试一下,希望能帮到你。
解决方案
方案1 应急解决,线上环境开启调试模式
APP_DEBUG = trueENV = live
方案2 短期解决,在config/annotation.php中关闭注解功能

<?phpreturn [
    'inject' => [
        'enable'     => false,
        'namespaces' => [],
    ],
    'route'  => [
        'enable'      => false,
        'controllers' => [],
    ],
    'ignore' => [],];


TP6中 success()、error()、redirect() 是用来进行页面跳转的函数,如果在关闭debug模式下运行时出现 "服务器内部错误",可能是因为以下原因:

您的控制器或模型代码中存在语法错误或逻辑错误,在debug模式下可以被忽略,但在关闭debug模式后会导致程序出错。
在debug模式下成功执行的代码在关闭debug模式后可能会出现数据库连接错误,文件读写错误等问题。
配置文件中的错误,如数据库连接信息错误,路由配置错误等。

这个问题可能是由于开启debug模式下,ThinkPHP会自动捕获并处理错误,而关闭debug模式下,就需要手动设置错误处理机制。
可以尝试在关闭debug模式后,在入口文件或者全局配置文件中设置 'app_debug' => true, 'error_message' => '页面错误!请稍后再试~', 'show_error_msg' => true, 来显示错误信息并解决问题。
望采纳,谢谢!

望采纳!!!点击回答右侧采纳即可!

1、检查是否开启了异常处理,如果没有,请在app/http/middleware.php中添加:
\think\middleware\CheckRequest::class
2、检查是否开启了路由缓存,如果没有,请在config/app.php中添加:
'route_check_cache' => false
3、检查是否开启了日志记录,如果没有,请在config/app.php中添加:
'log' => [
'type' => 'File',
'level' => ['error'],
],
4、检查是否开启了调试模式,如果没有,请在config/app.php中添加:

'debug' => false

不知道你解决了没有,如果没解决,我们可以聊聊。


悄悄的告诉你,不同的tp小版本之间,有些许不同的实现方式。

你稍微留意下,就可以解决你的问题。