Laravel-为部署和生产后部署设置公用存储

问题描述 投票:0回答:1

我已经接管了Laravel项目,该项目已经部署了一段时间,该项目一直使用单独的存储文件夹来存储上传到各个网站的文件。我对Laravel的经验有限。我现在想使用一个位置来存储暂存和生产Laravel网站的文件,以减少重复文件占用的存储空间。

我设法设置了暂存,以将其文件保存到Productions存储文件夹中。我现在遇到的问题是,我们用来上传文件的<input>组件试图从Stagings存储文件夹而不是Productions中获取这些文件以进行预览。

如何使<input>组件从正确的位置(即Productions存储)而不是Stagings存储文件夹中成为要预览的文件源?

我正在研究将Stagings存储文件夹链接到Productions公用文件夹的符号链接,并放弃了它,因为它一次只允许一个文件夹链接。

如前所述,我已经成功设置了上载路径以使用config/filesystems.php中的Productions存储文件夹,但是我无法找到一种设置<input>组件来源的方法,因此它将使用正确的URL预览已分配给它的文件。

更新的存储路径参考

filesystems.php

'public' => [
    'driver' => 'local',
    'root' => storage_path('../../mywebsite.com/storage/app/public'),
    'url' => 'https://mywebsite.com/storage',
    'visibility' => 'public',
],

如何创建图像路径

FileUploadController.php

$filePath = Storage::url($request->file($file)->storeAs('/', Carbon::now()->timestamp . $request->file($file)->hashName(), 'public'));

我不确定在这里还有什么其他代码可以使用,请随时询问,我会尽力提供。

我原本以为<input>组件将根据文件存储在预览中的显示位置接收文件URL。但是,似乎文件路径从/storage/my-file-here.jpeg开始,并且在填充<input>组件的源之前已与暂存网站URL串联。

laravel storage shared production staging
1个回答
0
投票

原来我去解决所有问题都是错误的。我不需要更改文件中的任何代码。

解决方案是从暂存站点存储/应用程序/公用文件夹设置符号链接,以指向生产站点存储/应用程序/公用文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.