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

生产环境下主题应用无法加载Twig模板的技术求助

问题分析与解决方案

问题核心

你的Shopware 6主题插件在开发模式下可正常加载自定义标签页模板,但生产模式下出现模板查找失败的问题:6.4.0.18版本直接抛出LoaderError,6.4.0.20版本虽不报错但标签页不显示。本质是生产模式下Shopware的模板加载机制未识别到abettercms目录下的模板文件——开发模式会实时扫描所有模板路径,而生产模式依赖预注册的模板路径和缓存,未注册的路径会被忽略。

解决方案

1. 注册自定义模板路径

在你的插件src/Resources/config/packages/shopware.yaml文件中,添加abettercms目录的模板路径注册,让Shopware在生产模式下能检索到该目录:

shopware:
  template:
    paths:
      '@AreanetStandardtheme64/abettercms': '%kernel.project_dir%/custom/plugins/AreanetStandardtheme64/src/Resources/views/abettercms'

2. 修正模板引用方式

有两种可选方案:

  • 方案一:使用注册后的命名空间引用(推荐)
    保持原引用代码不变,确保上述路径配置生效即可:
    {% sw_include '@AreanetStandardtheme64/abettercms/page/product-detail/tab-one.html.twig' %}
    
  • 方案二:使用相对路径引用
    利用当前模板的位置(views/storefront/page/product-detail/),通过相对路径直接指向目标模板:
    {% sw_include '../abettercms/page/product-detail/tab-one.html.twig' %}
    

3. 清理生产模式缓存

修改配置或模板后,必须执行以下命令更新缓存,确保新配置生效:

# 清理生产环境缓存
bin/console cache:clear --env=prod
# 重新编译主题
bin/console theme:compile

4. 版本适配说明

  • 6.4.0.18版本:模板加载机制对未注册路径的容错性低,直接抛出LoaderError,按上述步骤修复后即可解决报错。
  • 6.4.0.20版本:模板加载时静默忽略未找到的模板,因此页面能显示但标签页不出现,修复路径注册和引用后,标签页会正常渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:30