API 调用在本地主机上成功,但在生产中失败

问题描述 投票:0回答:1

我有一个在 php 8.2 上运行的 Laravel 10 应用程序。现在我在生产中面临 api 调用的困难。只是澄清一下:API 工作正常,这是导致问题的一种特定路线。

这是 API 控制器的代码:

public function indexContact(): JsonResponse
{
    return response()->json([
        'captcha' => Captcha::create('math', true),
        'categories' => ContactController::CATEGORIES,
    ]);
}

验证码是通过 mews/captcha 包中的

use Mews\Captcha\Facades\Captcha;
导入的。

现在我收到一个 Sentry 问题,说

Undefined property: Intervention\Image\EncodedImage::$encoded
,它被抛出到
Captcha::create
的调用堆栈中。面包屑显示,在应用程序出现错误之前,验证码已写入缓存。

我尝试自己对服务器进行 API 调用,但收到了 500 内部服务器错误。

但是当我启动本地环境(具有相同的 git 版本)并在那里运行 API 请求时,它成功了,没有问题。我已经检查并比较了软件包版本和代码,本地主机和生产环境都具有相同的作曲家锁定条目。部署时没有错误。我很感谢任何帮助。

laravel localhost captcha production-environment
1个回答
0
投票

如果本地和远程环境绝对相同,我建议你通过运行来清除laravel缓存(特别是路由缓存)

php artisan optimize
php artisan config:cache
php artisan config:clear

还要仔细检查 php 扩展、启用的 php 版本和安装的软件包

composer show -i
php -i
© www.soinside.com 2019 - 2024. All rights reserved.