4

我已经创建了一个存储链接,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

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

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

4

3 回答 3

3

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

use Illuminate\Support\Facades\File;

File::link(
    storage_path('app/public'), public_path('storage')
);
于 2020-02-03T10:04:43.433 回答
0

尝试在您的公用文件夹 ( 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

于 2021-12-19T16:25:54.380 回答
0

更新文件系统.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

于 2020-02-03T09:54:04.857 回答