storage:link无法托管cPanel

时间:2020-02-03 09:39:59

标签: laravel storage hosting cpanel laravel-storage

因此,我已经使用php artisan storage:link创建了一个存储链接,并且在 localhost 上可以正常使用,但是,当我在共享主机上部署项目时,它不会显示任何图像。这是我的托管目录结构:

- home2/username
:   + other hosting folders
:   - MyLaravelWebSite
:   :   + other laravel folders
:   :   - storage
:   :   :   - app
:   :   :   :   - public
:   :   :   :   :   -images
:   :   :   :   :   :   * some-image.jpg
:   :   :   :   * gitignore
:   :   :   + framework
:   :   :   + logs
:   - public_html
:   :   + assets
:   :   + storage // symlink
:   :   * index.php

图像上传完全正常,但是每当我尝试显示它们时,它们都不会显示,而它们在localhost上却显示完全正常。我认为符号链接无法正常工作。我该如何运作?

P.s:我在cPanel上没有CLI的任何访问权限。

2 个答案:

答案 0 :(得分:1)

您可以使用PHP和Laravel帮助器方法执行相同的操作,只需运行一次此代码(例如,将其添加到控制器中并调用一次)即可手动创建存储链接:

use Illuminate\Support\Facades\File;

File::link(
    storage_path('app/public'), public_path('storage')
);

答案 1 :(得分:0)

更新 filesystems.php

'public' => [
            'driver' => 'local',
            'root' => public_path() . '/uploads',// upload file in public dir
            'url' => env('APP_URL').'/uploads', // help to get Storage::url() 
            'visibility' => 'public',
        ],

将其放在filesystems.php中,则所有文件将保存在public/uploads文件夹中 并获取网址,此功能Storage::disk('public')->url($dbImageUrl);将起作用

如果您无法创建符号链接,则用于cpanel