Shopify 市场与本地化

routes.root_url 拼出来的链接跳到主站怎么修

现象#

德国子目录下点 logo 回到英文主站 /,商品卡链接变成 //products/xxx 直接 404。

原因#

  • routes.root_url 返回当前语言的根路径,末尾可能带斜杠,再补一个就成双斜杠
  • 用 shop.url 拼绝对地址会固定到主域名,丢掉市场子目录前缀
  • 硬编码 /collections/all 这类路径会绕过当前市场的 URL 结构
  • canonical_url 已含语言前缀,与手拼的相对路径规则不一致

处理步骤#

  1. 先输出 {{ routes.root_url }} 与 {{ request.path }},确认有无尾部斜杠与语言前缀
  2. 首页链接只用 {{ routes.root_url }},不要在后面直接拼子路径
  3. 商品与集合链接改用 {{ product.url }}、{{ collection.url }}
  4. 必须拼时先归一化:{{ routes.root_url | replace: '//', '/' }}
  5. 全站扫一遍 href,把以 // 开头的链接替换掉

验收标准#

在 /en-de 下点 logo 与商品卡,URL 都保留 /en-de 前缀且没有 //;切到法语站同样成立。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。