app/public (laravel) 中的图像未显示在 Heroku 应用程序中

Images in app/public (laravel) not show in Heroku app

我在 laravel 中有一个项目,其中一个部分将图像上传到服务器。图片使用文件存储保存在/storage/app/public文件夹中。 在本地正常工作,图像看起来不错,但是当我将项目上传到 heroku 时,看不到图像。 即使在 heroku 运行 中,命令 "php artisan storage: link"

为什么我看不到图片?我不想为此使用 AWS S3。 我能错过什么?

谢谢..

在您的 composer.json 中添加:

"post-install-cmd": [ "ln -sr storage/app/public public/storage" ],

Heroku 没有文件存储。因此,如果您要将它用于您的服务器,则需要找出另一种存储文件的方法。

您还可以将图片上传到 public 文件夹而不是存储文件夹(这样您就不会遇到上述问题)。 为此,您需要更改 app/filesystem.php

中的配置

改变

'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

对此:

'public' => [
            'driver' => 'local',
            'root' => public_path(),
            'url' => env('APP_URL').'/public',
            'visibility' => 'public',
        ],

您可以这样存储文件:

$pathToFile = Storage::disk('public')->put('uploads/', $file);

现在您可以将 $pathToFile 变量插入数据库!

我所做的对我有用:

在你的 composer.json 添加:

"post-install-cmd": [ "ln -sr storage/app/public public/storage" ],(如果在上面的命令之后还有任何其他行,请不要忘记逗号 ,)但是您应该在脚本部分添加上面的行。

此外,您需要运行命令:

 php artisan storage:link

在 运行 执行此命令之前,请检查 public 文件夹中是否已存在存储文件夹,如果存在,则将其重命名为 storage-bk 和 运行 命令。这样它会创建新的快捷文件夹存储 (storage/app/public)。