Laravel Voyager 图像在服务器上传后损坏

Laravel Voyager image broken after uploading in server

Laravel版本:5.5 航海者版本:1.0 PHP版本:7

我已经在 cPanel 中上传了我的 laravel 项目。之前的图片显示成功,新添加的图片显示不出来

最后 2 张图片在上传到 cPanel 之前已经在项目中了。在 cPanel 中成功上传项目后,我尝试上传一张图片,但未显示哪个是第一张。

有人帮忙吗?

我尝试更改 config/filesystem。php

将路径从 storage_path() 更改为 public_path()。

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

但是没有用。请帮助我!

图像损坏url- http://example.com/storage/products/December2018/QIDyzoFg1aAf6NUGMJtZ.jpg

我找到了解决方案!问题出在 symlink(存储符号 link)中。 在本地主机中,我们可以轻松地从 voyager adminpannel 或在终端中创建 symlink php artisan storage:link 在这种情况下,在共享主机中我们不能这样做。请参阅下面我所做的。

1.log 进入控制台

2.go 项目文件夹,然后转到 public->storage 文件夹,然后将其重命名为 storage old 之类的。

3.come 回到 cpannel 主菜单和 select cron 作业

4.in 常用设置 --> select *每 5 分钟一次

5.in 命令字段添加这个 ln -s /home/cpanel_username/project_name/storage/app/public /home/cpanel_sername/project_name/public/storage

(我的站点在子域中)示例-ln -s /home/your_cpannel_user name/public_html/subdomain_foldername/storage/app/public /home/cpanel_username/public_html/subdomain_foldername/public/storage

语法-->ln -s target_path link_path

6.type 您在 cron 电子邮件和更新电子邮件中的电子邮件(当工作完成时,电子邮件通知将到达您的收件箱 检查垃圾邮件文件夹

6.create 新的定时任务

7.wait 几分钟就快完成了! 执行后删除cronjob

8.log 并检查上传路径是否正常工作!

假设你的Laravel项目"public"目录和"public_html"目录不同,请运行执行以下命令:

php artisan storage:link 

此命令将创建 symlink 到 "public" 目录到您的 Laravel 项目,而不是在 "public_html" 中。接下来我们需要将"storage" link 移动到"public_html" 目录,为此您可以直接移动。如果它不起作用,则进入 "public" 目录并根据您的 public_html 目录位置 运行 以下命令:

mv storage /home/*yourHostinInfo*/domains/*domainName*/public_html

根据您的主机信息,路径可能会有所不同。