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

时间:2018-12-05 04:44:54

标签: php cpanel laravel-5.6 voyager

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

我已将laravel项目上传到cPanel中。以前的图像显示成功,但是新显示的图像没有显示。

enter image description here

在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

2 个答案:

答案 0 :(得分:0)

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

1。登录到面板

2。转到项目文件夹,然后转到public-> storage文件夹,然后将其重命名为old或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并检查上传路径是否正常!

答案 1 :(得分:0)

假设您的Laravel项目的“ public”目录和“ public_html”目录不同,请运行以下命令:

php artisan storage:link 

此命令将创建符号链接到Laravel项目的“ public”目录,而不是在“ public_html”内部。接下来,我们需要将“存储”链接移动到“ public_html”目录,为此您可以直接移动。如果它不起作用,则进入“ public”目录,并根据您的public_html目录位置运行以下命令:

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

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