Flask项目运行时HTML模板内视频无法正常播放该如何解决
问题原因分析
- 本地视频无法加载:Flask默认仅允许访问
static目录下的静态资源,将视频放在非static目录下时,填写的相对路径无法被Flask路由识别,资源返回404,因此页面仅显示黑框。 - 谷歌云盘链接通过Flask无法播放:当前使用的是谷歌云盘的预览页链接,不是视频可直接播放的直链,且使用了
<a>标签而非<video>标签嵌套<source>的结构,直接打开本地HTML时浏览器可能做了兼容跳转,但Flask服务下路径解析逻辑变化导致无法正常加载。
解决方案
方案1:使用本地视频(更稳定)
- 在Flask项目根目录下创建
static文件夹,将video_1.mp4移动到该文件夹内 - 修改HTML中的视频相关代码,使用Flask内置的
url_for函数生成静态资源路径:
<video controls width="100%"> <source src="{{ url_for('static', filename='video_1.mp4') }}" type="video/mp4"> 您的浏览器不支持HTML5视频播放 </video>
- 原有Flask启动代码无需修改,直接运行即可正常加载播放本地视频。
方案2:使用谷歌云盘存储的视频
需要先把谷歌云盘的分享链接转换为可直接嵌入播放的直链格式:
- 从原分享链接中提取文件ID,原链接格式为
https://drive.google.com/file/d/[文件ID]/view?usp=sharing,提取出中间的文件ID字段即可 - 替换HTML中的视频代码为:
<video controls width="100%"> <source src="https://drive.google.com/uc?export=download&id=替换为你提取的文件ID" type="video/mp4"> 您的浏览器不支持HTML5视频播放 </video>
- 该方案受谷歌云盘流量限制,仅适合小流量测试场景使用。
内容的提问来源于stack exchange,提问作者yael
相关产品推荐
相关产品推荐

