我想创建一个太平洋利基(迷你youtube之类的东西)视频分享网站。
我已经成功地创建了上传功能,并且文件存储在storage/public/videos
中
然后我使用php artisan storage:link
创建了一个符号链接
当我尝试使用https://laravel.com/docs/5.6/filesystem中所述的echo asset('storage/videos/file.mp4');
访问这些文件时
我在视图中的html如下所示
<video controls>
<source src="{{ asset('storage/videos/file.mp4') }}" type="video/mp4">
</video>
wrong :我做错了什么或遗漏了什么?
发布于 2018-06-04 06:40:46
所以来自documentation
公共磁盘用于存储将要公开访问的文件。缺省情况下,公共磁盘使用本地驱动程序并将这些文件存储在storage/app/public.中要通过web访问它们,应创建一个从public/storage到storage/app/public.的符号链接此约定将使您的可公开访问的文件保存在一个目录中,当使用像Envoyer这样的零宕机部署系统时,该目录可以很容易地在部署之间共享。
正如您所理解的,当您执行php artisan storage:link
时,它会执行以下操作:
ln -s storage/app/public public/storage
但是您将文件保存在文档无法访问(链接)的storage/public/videos
中。
2个解决方案:
1)你必须手动完成(手动创建符号链接):
ln -s storage/public/videos public/storage/videos
在代码中,它的用法如下:asset('storage/videos/file.mp4')
2)按照约定修改文件存储方式:storage/app/public/videos
https://stackoverflow.com/questions/50671509
复制相似问题