routes.root_url 拼出来的链接跳到主站怎么修
现象#
德国子目录下点 logo 回到英文主站 /,商品卡链接变成 //products/xxx 直接 404。
原因#
- routes.root_url 返回当前语言的根路径,末尾可能带斜杠,再补一个就成双斜杠
- 用 shop.url 拼绝对地址会固定到主域名,丢掉市场子目录前缀
- 硬编码 /collections/all 这类路径会绕过当前市场的 URL 结构
- canonical_url 已含语言前缀,与手拼的相对路径规则不一致
处理步骤#
- 先输出
{{ routes.root_url }}与{{ request.path }},确认有无尾部斜杠与语言前缀 - 首页链接只用
{{ routes.root_url }},不要在后面直接拼子路径 - 商品与集合链接改用
{{ product.url }}、{{ collection.url }} - 必须拼时先归一化:
{{ routes.root_url | replace: '//', '/' }} - 全站扫一遍 href,把以 // 开头的链接替换掉
验收标准#
在 /en-de 下点 logo 与商品卡,URL 都保留 /en-de 前缀且没有 //;切到法语站同样成立。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。