首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将公用存储文件夹名从“public / storage”更改为“public/public”?

是否可以将公用存储文件夹名从“public / storage”更改为“public/public”?
EN

Stack Overflow用户
提问于 2017-03-31 09:02:13
回答 1查看 270关注 0票数 0

Laravel建议这里创建从public/storagestorage/app/public的符号链接。我正在寻找一些关于将public/storage重命名为public/public是否会导致其他配置或包中的任何问题的输入。

之所以这样做,是因为db中的所有文件名都相对于storage/app文件夹。我以这种方式存储它,因为我可以使用storage_path()助手统一检索任何文件。例如:

  1. 受保护文件: db = storage/app/internal/secret.doc = internal/secret.doc中的=>文件名
  2. 公共文件: db = storage/app/public/common.doc =>文件名为public/common.doc

然后取回它们:

代码语言:javascript
复制
// get filename 'internal/secret.doc' or 'public/common.doc'
$filename = DB::table('files')->find(1)->value('name'); // find file where id=1 and get only the name field
$file = storage_path('app/'.$filename);

这样,我就不必怀疑是否需要在检索特定文件时添加public/文件夹。同样,当我使用asset()助手为公共文件生成urls时,我也可以简单地说:

代码语言:javascript
复制
$url = asset($filename)`;

然而,如果我继续使用public/storage作为符号链接文件夹,那么我就必须这样做:

代码语言:javascript
复制
$temp_filename = str_replace('public/', '', $filename);
$url = asset('storage/'.$temp_filename);

如果您对重命名有不同的看法或发现一些问题,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2017-03-31 09:09:56

一旦public/storage连接到storage/app/public,您就不希望asset()中的文件路径引用public。公用文件夹已经是您的and服务器的根目录,asset()采用公共目录库。所以你的资产将在asset("storage/$filename")。这实际上是从storage/app/public/$filename中提取的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43136623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档