首页 > 解决方案 > Laravel Voyager 图像在服务器上传后损坏

问题描述

Laravel 版本:5.5 Voyager 版本:1.0 PHP 版本:7

我已经在 cPanel 中上传了我的 laravel 项目。以前的图像显示成功,但没有显示新添加的图像。

在此处输入图像描述

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

有人帮忙吗?

我尝试更改 config/filesystem.php

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

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

但它没有奏效。请帮我!

损坏的图片网址 - http://example.com/storage/products/December2018/QIDyzoFg1aAf6NUGMJtZ.jpg

标签: phpcpanellaravel-5.6voyager

解决方案


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

1.登录cpannel

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

3.回到cpannel主菜单,选择cron作业

4.在常用设置->选择*每5分钟一次

5.在命令字段中添加这个 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.在 cron 电子邮件中输入您的电子邮件并更新电子邮件(当工作完成后,电子邮件通知将进入您的收件箱,检查垃圾邮件文件夹

6.创建新的cronjob

7.等待几分钟你几乎完成了。!执行后删除cronjob

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


推荐阅读