You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8 存储在public目录的视频在blade模板无法加载播放如何解决

Laravel页面视频无法加载播放解决方案

修正后的代码

show.blade.php

<video width="320" height="240" controls>
   <source src="{{ asset('video/'.$news->video) }}" type="video/mp4">
   <source src="{{ asset('video/'.$news->video) }}" type="video/ogg">
   您的浏览器不支持HTML5视频播放
</video>

NewsController.php 无需修改,原有逻辑正常


分步排查方案

  • 路径正确性校验
    打开浏览器F12控制台,切换到「网络」标签刷新页面,查看视频资源的请求状态:
    • 状态码404:确认$news->video存储的文件名和public/video目录下的实际文件名完全一致(Linux环境大小写敏感);如果视频实际存放在storage/app/public/video目录下,需先执行命令php artisan storage:link创建软链接,同时将资源引用路径改为{{ asset('storage/video/'.$news->video) }}
    • 状态码403:检查public/video目录及内部文件的可读权限,确保web服务器用户有读取权限
    • 状态码200但无法播放:替换为已知可正常播放的测试mp4文件硬编码路径测试,排除原视频损坏、转码错误、格式不匹配的问题
  • 服务端MIME配置校验
    自定义部署的服务器可能缺少对应视频格式的MIME声明,可手动添加:
    • Apache环境可在站点根目录.htaccess文件中添加:AddType video/mp4 .mp4
    • Nginx环境可在站点配置的types块中添加:video/mp4 mp4;

内容的提问来源于stack exchange,提问作者Shahed Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:15:05