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

Django如何读取模型中存储的视频文件并在前端模板正常渲染播放

Django前端模板无法播放media目录存储视频的解决方案

按照以下步骤依次排查修改即可解决问题:

  • 第一步:修正模板视频路径和语法错误
    你当前模板中直接引用{{checklist.video}}只会输出文件的相对存储路径,不会生成完整可访问的URL,需要调用url属性,同时删除重复的</video>闭合标签,修改后的视频部分代码如下:
<video width="320" height="240" controls>
  <source src="{{ checklist.video.url }}" type="video/mp4">
  Your browser does not support the video tag.
</video>

  • 第二步:确认settings.py中MEDIA配置正确
    检查项目的settings.py文件是否配置了MEDIA根路径和访问前缀:
# settings.py
MEDIA_URL = '/media/'
# 路径对应你项目中存放media文件的根目录,确保和你存储视频的父目录匹配
MEDIA_ROOT = BASE_DIR / 'media'

  • 第三步:开发环境配置media文件路由
    开发模式下Django默认不会自动托管media目录的文件,需要在项目根目录的urls.py中添加托管配置:
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 此处保留你项目原有所有路由配置
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

注意:该配置仅适用于本地开发环境,生产环境需要通过Nginx等反向代理服务直接托管media目录,不要用Django处理静态资源请求。


  • 第四步:验证视频格式匹配
    你当前指定的视频解码类型为video/mp4,如果上传的视频不是H.264编码的MP4格式,浏览器会无法解码播放。要么统一要求上传MP4格式视频,要么根据上传文件的后缀动态修改type属性。

修改完成后可以右键页面上的视频元素,复制视频地址直接在浏览器地址栏访问,如果能直接播放说明路径配置正确,否则需要回头检查MEDIA配置和路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:54:07