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)。
我在 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)。