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

Odoo 10网站嵌入无控件自动播放视频问题求助

在Odoo 10网站中嵌入本地自动播放无控件视频的解决方案

我明白你想在Odoo 10网站里嵌入本地MP4视频,要实现无控件、自动播放的纯净效果,但用了那段QWeb代码后视频没显示——这大概率是路径配置、视频标签属性缺失或者Odoo静态资源缓存的问题,下面给你一步步排查和解决的方法:

  • 第一步:确认静态资源路径与文件存在性
    你写的路径/website_custom/static/src/video/video.mp4得确保这几点:

    1. 你的自定义模块确实命名为website_custom
    2. 视频文件准确放在模块内的static/src/video/目录下,文件名和后缀完全匹配(注意Linux环境下大小写敏感,别把video.mp4写成Video.MP4)
    3. 重启Odoo服务并更新模块,Odoo会缓存静态资源,更新模块能强制刷新缓存,确保文件被加载
  • 第二步:完善video标签的关键属性
    现代浏览器对自动播放有严格限制(基本要求静音才能自动播放),而且你的原始代码缺少核心属性,修改后的QWeb代码应该是这样:

    <video id="myVideo" autoplay muted loop playsinline controls="false">
        <source src="/website_custom/static/src/video/video.mp4" type="video/mp4"/>
        你的浏览器不支持HTML5视频播放
    </video>
    

    给你解释下这些属性的作用:

    • autoplay:触发自动播放(必须配合muted才能通过浏览器的自动播放政策)
    • muted:静音播放,这是现在浏览器允许自动播放的必要条件之一
    • loop:让视频循环播放(如果不需要可以去掉)
    • playsinline:避免移动设备上视频自动全屏,保持在页面内播放
    • controls="false":彻底隐藏播放控件,实现你要的纯净效果
  • 第三步:添加CSS确保视频正常显示
    有时候视频没显示是因为没设置宽高,或者被默认样式隐藏了,加上样式就能解决:

    #myVideo {
        width: 100%;
        height: auto;
        display: block; /* 消除行内元素带来的间隙问题 */
        object-fit: cover; /* 如果要做背景视频,这个属性能让视频铺满容器,裁剪多余部分 */
    }
    

    你可以把这段CSS放到模块的static/src/css/目录下的样式文件里,然后在模板中引入;嫌麻烦的话直接用style属性写在video标签里也行:

    <video id="myVideo" autoplay muted loop playsinline controls="false" style="width:100%;height:auto;display:block;object-fit:cover;">
        <source src="/website_custom/static/src/video/video.mp4" type="video/mp4"/>
        你的浏览器不支持HTML5视频播放
    </video>
    
  • 第四步:验证路径是否可访问
    打开浏览器直接访问http://你的Odoo域名/website_custom/static/src/video/video.mp4,如果能直接播放视频,说明路径没问题;如果显示404,那就是路径或者文件放置的问题,重新检查模块结构和文件名。

  • 第五步:确认模板渲染位置
    确保这段QWeb代码放在正确的网站模板位置,比如在website.layout的合适区块里,或者你自定义的页面模板中,别被其他元素覆盖或者没被Odoo渲染出来。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:24:06