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

Odoo 14 Docker邮件模板图片生产环境无法显示问题排查

问题:Odoo 14生产环境自定义邮件模板图片404,本地正常

场景与现象

  • 基于Odoo 14 Docker镜像开发,继承mass_mailing模块实现自定义邮件模板,为模板添加选择缩略图、邮件内嵌入公司Logo
  • 本地开发环境下所有图片正常显示,部署至生产环境后全部图片加载失败,访问图片URL返回404:

Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

  • 模块内定义的CSS样式可正常生效

代码片段

<template id="custom_email_designer_snippets" inherit_id="mass_mailing.email_designer_snippets" name="Custom E-mail designer snippets">
  <xpath expr="//div[@id='email_designer_themes']" position="inside">
    <div data-name="custom_template" title="Custom Mailing Template" data-img="/mass_mailing_themes_custom/static/src/img/theme_imgs/custom_thumb" data-images-info='{"logo": {"format": "png"}}'>
      <t t-call="mass_mailing_themes_custom.theme_custom_template"/>
    </div>
  </xpath>
</template>
<template id="theme_custom_template">
  <t t-call="mass_mailing.s_mail_block_paragraph"/>
  <t t-call="mass_mailing.s_mail_block_footer_separator"/>
  <img src="/mass_mailing_themes_custom/static/src/img/theme_custom_1/logo_grey_120x41.png" width="60" alt="Logo grey"/>
</template>

原因及解决办法

1. 生产环境未收集静态资源

Odoo生产模式不会自动加载模块内的静态资源,必须手动执行静态资源收集命令,而本地开发模式会自动处理。Docker环境下执行以下命令:

# 替换<odoo容器名>和<数据库名>为实际值
docker exec -it <odoo容器名> /usr/bin/odoo-bin --load=web -d <数据库名> --update mass_mailing_themes_custom --static-link

也可以在启动容器时添加环境变量,确保每次启动自动收集:

-e ODOO_CMD_ARGS="--load=web --static-link"

2. 路径大小写不匹配

Linux生产环境(Docker默认镜像)区分文件名大小写,若本地是Windows/macOS(默认不区分大小写),代码中路径大小写与实际文件不一致会导致404。

  • 检查mass_mailing_themes_custom/static/src/img/下的文件夹、文件名,确保和代码中的路径完全一致(包括大小写)

3. 文件权限不足

生产环境中Odoo运行用户(通常为odoo)可能没有读取模块静态资源的权限,执行命令调整权限:

docker exec -it <odoo容器名> chown -R odoo:odoo /mnt/extra-addons/mass_mailing_themes_custom

4. 图片路径写法错误

直接使用绝对路径/mass_mailing_themes_custom/...在生产环境可能失效,因为静态资源会被收集到/web/content/路径下,建议改用Odoo标准的资源URL写法:

  • 修改模板中的图片标签:
<img t-att-src="'/web/image/mass_mailing_themes_custom/static/src/img/theme_custom_1/logo_grey_120x41.png'" width="60" alt="Logo grey"/>
  • 修改缩略图的data-img属性(注意补充文件后缀,本地可能自动识别,生产环境必须明确):
data-img="/web/image/mass_mailing_themes_custom/static/src/img/theme_imgs/custom_thumb.png"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:02:48