Shopware 6 App中buy-widget.html.twig模板覆盖无效问题
Shopware 6 App模板覆盖失效问题排查
问题描述
我尝试在Shopware 6 App中覆盖@Storefront/storefront/page/product-detail/buy-widget.html.twig模板,但无任何效果,仅index模板覆盖可正常工作。我的代码如下:
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %} {% block page_product_detail_buy_form %} <h1 style="background: green;">Test</h1> {% endblock %}
请问为何该模板覆盖操作未生效?
排查及解决方法
核对模板文件路径
确保你的模板文件放在App目录的正确位置:/Resources/views/storefront/page/product-detail/buy-widget.html.twig,路径层级、文件名必须和官方模板完全一致,注意大小写和连字符的拼写。强制清理缓存
Shopware会缓存模板文件,修改后必须清理缓存:- 后台操作:进入「设置」>「系统」>「缓存管理」,点击「清空缓存」
- 命令行操作:执行
bin/console cache:clear
验证区块名称正确性
检查当前Shopware版本的buy-widget.html.twig源码,确认page_product_detail_buy_form区块确实存在。不同版本的Shopware可能调整区块命名,必须保证区块名称完全匹配。确认App状态
确保你的App已经在Shopware后台完成安装并处于激活状态,若修改了模板后未重新安装App,可能导致新模板未被加载。调整App优先级
如果有其他插件/App也在覆盖该模板或区块,优先级会影响最终显示效果。在后台「设置」>「插件」>「已安装插件」中,将你的App调整到更高排序位置,确保你的修改优先生效。
内容的提问来源于stack exchange,提问作者Leon Schwanitz
相关产品推荐
相关产品推荐

