Laravel应用程序共享主机,存储文件夹符号链接问题

时间:2017-06-14 05:42:41

标签: php laravel-5.4 shared-hosting

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

中有图像

我希望通过

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

所以问题在于以这种方式共享托管

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

首先从公用文件夹删除文件夹存储,并在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 :(得分:0)

我在这里找到了解决方案

首先,删除public / storage {storage}文件夹,然后将这段代码放在web.php文件的顶部

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

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