在laravel 5.4(存储文件夹)中更改默认的“符号链接”文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在laravel 5.4(存储文件夹)中更改默认的“符号链接”文件夹相关的知识,希望对你有一定的参考价值。

我正在使用laravel 5.4制作我的网站的新版本,并希望保留与旧网站相同的链接。

我的旧网站有这样的链接图像:domain.com/uploaded/cat.jpg

在laravel中,它必须创建一个符号链接来显示存储的图像,但它使用名为storage的默认文件夹保存它们,如下所示:domain.com/storage/cat.jpg

如何将默认名称更改为“已上传”或其他什么?

我尝试使用以下方法更改文件 config filesystems.php中的url:

之前

'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/uploaded',
        'visibility' => 'public',
    ],

和我的控制器

$request->file('image')->storeAs('public', 'example.jpg');
答案

确保你已经创建了一个符号链接。

根据您的配置,您可以运行此命令:

ln -s storage/app/public public/uploaded

然后,您可以访问您的文件:

Storage::disk('public')->url('example.jpg')

或者只是使用asset()助手:

asset('uploaded/example.jpg');
另一答案

使用任何php文件在服务器中执行此代码以创建符号链接。创建链接后,文件将可公开访问。

target ='/ home / cfrcoclm / public_html / agencies / storage / app / public' shortcut ='/ home / cfrcoclm / public_html / agencies / uploaded'symlink(target,shortcut)ec ho(“Link Created!”)`

另一答案

如果您没有SSH访问权限,您也可以在下面编写这个单行脚本并在服务器上运行它 - 考虑正确的目录路径

符号链接( '/家庭/域名/ laravelprojectname /存储/应用程序/公共', '/家庭/域名/的public_html /存储');

以上是关于在laravel 5.4(存储文件夹)中更改默认的“符号链接”文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 AWS 服务器

laravel-5.4 - 错误:从空值创建默认对象

Laravel 默认存储路径更改

如何在 laravel 5.4 中存储数组 cookie?

Laravel 5.4 更改markdown邮件的主题

Laravel 5.4: 特殊字段太长报错