laravel 存储:链接在托管cPanel上不起作用

yzuktlbb  于 2023-02-05  发布在  其他
关注(0)|答案(4)|浏览(173)

我用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

上传图像时没有任何问题,但是当我试图渲染它们时,它们没有渲染,而在本地主机上渲染得非常好。我认为 * 符号链接 * 不起作用。我如何才能使其工作?

  • P.s:我无法访问cPanel上的CLI。*
bwntbbo3

bwntbbo31#

你可以使用PHP和Laravel辅助方法来做同样的事情,只需运行一次这段代码(例如,将其添加到你的控制器中并调用一次)就可以手动创建存储链接:

use Illuminate\Support\Facades\File;

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

g0czyy6m2#

更新文件系统.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文件夹和获得url这个函数Storage::disk('public')->url($dbImageUrl);将工作
这是为cpanel如果你不能创建符号链接然后

ztmd8pv5

ztmd8pv53#

尝试在公用文件夹(filename.php)中创建文件。添加代码并保存

$targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public';
$linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage';
symlink($targetFolder,$linkFolder);
echo 'Symlink process successfully completed';

浏览你创建的文件site.com/filename.php
贷方:https://www.nicateliyev.com/en/post/how-create-symbolic-link-laravel-website-cpanel

tmb3ates

tmb3ates4#

不对文件配置系统进行任何更改的上述答案的替代方法是
1.从C面板中删除在本地主机上创建的存储链接文件夹
1.创建一个路径来运行你的php artisan storage:link命令如下
Router::get('/storage_link', function (){ Artisan::call('storage:link'); });
1.在你的鲍泽得到了路线/storage_link,..这将创建一个新的系统链接到你的存储文件

相关问题