doumo1807831 2018-06-03 22:22
浏览 140
已采纳

从Laravel中的存储服务文件(符号链接自定义存储路径)

I want to create a video sharing site for a spacific niche (mini-youtube kind of thing).

I have created the upload functionality successfully, and files are stored in storage/public/videos

I then created a symlink using php artisan storage:link

When I try to access the files using echo asset('storage/videos/file.mp4'); as stated at https://laravel.com/docs/5.6/filesystem

my html in the view looks like

<video controls>

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

</video>

QUESTION : What am I doing wrong or missing?

  • 写回答

1条回答 默认 最新

  • doulai7239 2018-06-03 22:40
    关注

    So from documentation:

    The public disk is intended for files that are going to be publicly accessible. By default, the public disk uses the local driver and stores these files in storage/app/public. To make them accessible from the web, you should create a symbolic link from public/storage to storage/app/public. This convention will keep your publicly accessible files in one directory that can be easily shared across deployments when using zero down-time deployment systems like Envoyer.

    as You understand when You do php artisan storage:link it does following:

    ln -s storage/app/public public/storage
    

    but You're keeping Your files in storage/public/videos that is not accessible (being linked) by documentation.

    2 solutions:

    1) You've to manually do (manually create symlinks):

    ln -s storage/public/videos public/storage/videos
    

    and in code to use it like: asset('storage/videos/file.mp4')

    2) Change file storage methods to store files by convention: storage/app/public/videos

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?