首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Laravel中提供来自存储的文件(symlink自定义存储路径)

在Laravel中提供来自存储的文件(symlink自定义存储路径)
EN

Stack Overflow用户
提问于 2018-06-04 06:23:00
回答 1查看 1.5K关注 0票数 0

我想创建一个太平洋利基(迷你youtube之类的东西)视频分享网站。

我已经成功地创建了上传功能,并且文件存储在storage/public/videos

然后我使用php artisan storage:link创建了一个符号链接

当我尝试使用https://laravel.com/docs/5.6/filesystem中所述的echo asset('storage/videos/file.mp4');访问这些文件时

我在视图中的html如下所示

代码语言:javascript
复制
<video controls>

<source src="{{ asset('storage/videos/file.mp4') }}" type="video/mp4">

</video>

wrong :我做错了什么或遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 06:40:46

所以来自documentation

公共磁盘用于存储将要公开访问的文件。缺省情况下,公共磁盘使用本地驱动程序并将这些文件存储在storage/app/public.中要通过web访问它们,应创建一个从public/storagestorage/app/public.的符号链接此约定将使您的可公开访问的文件保存在一个目录中,当使用像Envoyer这样的零宕机部署系统时,该目录可以很容易地在部署之间共享。

正如您所理解的,当您执行php artisan storage:link时,它会执行以下操作:

代码语言:javascript
复制
ln -s storage/app/public public/storage

但是您将文件保存在文档无法访问(链接)的storage/public/videos中。

2个解决方案:

1)你必须手动完成(手动创建符号链接):

代码语言:javascript
复制
ln -s storage/public/videos public/storage/videos

在代码中,它的用法如下:asset('storage/videos/file.mp4')

2)按照约定修改文件存储方式:storage/app/public/videos

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

https://stackoverflow.com/questions/50671509

复制
相关文章

相似问题

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