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

Magento2产品缩放模块中jQuery操作时image src被替换为乱码问题

问题根因

  • 核心触发点是self.imageSrc变量中包含未转义的反斜杠\,JavaScript解析字符串时会将反斜杠识别为转义前缀,与后续字符组合为转义序列,对应的二进制内容被解析为UTF-8字符时就生成了你看到的乱码ಬhe�。
  • 你提供的self.imageSrc原始值中存在路径片段product\cache\2e967597d34,其中\c、\2等组合被JS误判为转义序列,原本的cache字符串被转义后的乱码替换,最终生成无效的图片路径。

解决方案

临时修复(前端修改)

直接修改问题代码段,对路径中的特殊字符做处理后再拼接:

  1. 替换反斜杠为URL规范的正斜杠
if(self.options.zoomType == "inner") {
    // 全局替换所有反斜杠为正斜杠,符合URL路径标准
    const safeImgSrc = self.imageSrc.replace(/\\/g, '/');
    self.zoomWindow.css({ backgroundImage: "url('" + safeImgSrc + "')" });
}
  1. 对路径做URI编码
if(self.options.zoomType == "inner") {
    // 编码所有特殊字符,避免转义解析异常
    const safeImgSrc = encodeURI(self.imageSrc);
    self.zoomWindow.css({ backgroundImage: `url('${safeImgSrc}')` });
}

根治方案(后端/模块逻辑修改)

排查缩放模块获取图片路径的逻辑:

  • Magento 2原生输出的媒体资源路径默认统一使用正斜杠,确认模块是否错误调用了文件系统路径相关方法,比如在PHP端使用DIRECTORY_SEPARATOR生成路径,Windows环境下会输出反斜杠,直接输出到前端就会触发该问题。
  • 调整后端逻辑,输出给前端的资源路径统一使用正斜杠,从源头避免反斜杠出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:15:05