【问题标题】:Laravel application shared hosting, storage folder symbolic Link issueLaravel 应用共享托管,存储文件夹符号链接问题
【发布时间】:2017-06-14 05:42:40
【问题描述】:

我在本地 PC 上创建了符号链接,它工作正常,但我已经将它上传到共享主机,它在那里不工作。 基本上我在存储文件夹中有图像root/storage/public/images/

我想通过获取来显示它们

$path=asset('storage/images/'.$item->image);

所以问题出在共享主机上

$path=asset('storage/images/'.$item->image);

从域目录而不是从父目录获取,因此无法在共享主机上创建符号链接,所以我应该怎么做才能从父目录获取图像。 我是 laravel 的初学者,可以帮我解决这个问题。 谢谢

【问题讨论】:

  • 我发现了一件您应该真正关心的事情。您不应该将存储文件夹放在 /root 下,因为那是 root 帐户的主文件夹,除非您所说的 root 是指 Laravel 应用程序的根文件夹。
  • root 是指我的 laravel 应用程序的主文件夹
  • 谢谢,我刚刚在网站根目录中创建了符号文件夹,它对我来说工作正常:)
  • 很高兴它对您有所帮助!

标签: php laravel-5.4 shared-hosting


【解决方案1】:

首先从文件夹 public 中删除文件夹存储,并在 web.php 中使用此代码

Route::get('foo', function(){
    $targetFolder = $_SERVER['DOCUMENT_ROOT'].'/project_foder/laravel/storage/app/public';
    $linkFolder = $_SERVER['DOCUMENT_ROOT'].'/project_foder/public/storage';
    symlink($targetFolder, $linkFolder);
    return 'success';
});

或

Route::get('foo', function(){
    Artisan::call('storage:link', []);
    return 'success';
})

【讨论】:

    【解决方案2】:

    我在这里找到了解决方案

    首先,删除 public/storage {storage} 文件夹其次,将此代码放在 web.php 文件的顶部

    Artisan::call('storage:link');
    

    此代码手动运行 php artisan storage:link 命令

    【讨论】:

      【解决方案3】:

      请创建带有存储文件夹的链接文件夹,该文件夹将在项目文件库中创建相同的文件夹。了解更多信息, Symbolic links using PHP

      【讨论】:

        猜你喜欢
        • 2020-06-07
        • 2018-10-06
        • 2017-05-02
        • 1970-01-01
        • 1970-01-01
        • 2020-08-15
        • 2021-05-21
        • 2013-09-12
        • 2011-11-13
        相关资源
        最近更新 更多