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

PrestaShop 1.7.6.1商品增/编辑页报错:this._addClass is not a function

解决PrestaShop 1.7.6.1商品添加/编辑页JS报错问题

针对你升级后遇到的main.bundle.js:221 Uncaught TypeError: this._addClass is not a function报错,结合你尝试过的操作,我整理了几个针对性的排查和解决方向:

1. 优先排查缓存与资源加载完整性

这个报错的核心是jQuery UI的ui.widget组件未正确加载——_addClass是该组件提供的方法,一旦加载失败就会触发这个错误。你可以先做这些操作:

  • 清空PrestaShop后台缓存:进入「高级参数」→「性能」,点击「清除缓存」按钮,同时勾选清除Smarty缓存和编译文件;
  • 强制刷新浏览器缓存:按Ctrl+Shift+R重新加载商品编辑页面,避免浏览器使用旧的缓存文件;
  • 检查网络请求:打开浏览器控制台的「网络」标签,筛选JS文件,确认jquery.ui.widget.min.js、jquery.ui.mouse.min.js、jquery.ui.slider.min.js这几个文件是否成功加载(状态码为200),如果有404或加载失败,说明文件缺失或路径错误,需要恢复对应的文件。

2. 修复Media.php的滑块配置而非直接注释

直接注释ui.slider的配置会导致依赖它的其他功能失效,我们可以调整配置参数来解决问题:
打开classes/Media.php,找到第46行的滑块配置,尝试修改theme参数为false(避免加载主题自定义的UI样式,防止冲突):

'ui.slider' => array('fileName' => 'jquery.ui.slider.min.js', 'dependencies' => array('ui.core', 'ui.widget', 'ui.mouse'), 'theme' => false)

修改后保存并清缓存,测试商品编辑页是否恢复正常。如果还是不行,可以尝试调整依赖顺序,比如把ui.widget放在依赖数组的第一位:

'dependencies' => array('ui.widget', 'ui.core', 'ui.mouse')

3. 排查潜在的JS冲突(即使禁用了第三方模块)

有时候即使禁用了第三方模块,主题的后台自定义JS也可能和PrestaShop原生的jQuery UI冲突:

  • 临时切换到PrestaShop默认的Classic主题,测试商品编辑页是否正常;
  • 如果切换主题后问题解决,说明当前使用的主题存在后台JS冲突,需要检查主题目录下的admin-dev/或js/admin/文件夹中的自定义脚本,看看是否有覆盖或修改jQuery UI的代码。

4. 替换官方原生的jQuery UI文件

如果上述方法都无效,可能是PrestaShop自带的jQuery UI文件损坏或版本异常:

  • 从PrestaShop官方1.7.6.1安装包中提取js/jquery/ui/目录下的所有文件;
  • 替换到你的网站对应目录(你的店铺根目录/js/jquery/ui/);
  • 再次清空缓存并测试页面。

5. 检查PHP环境兼容性

虽然PHP 7.0.33符合PrestaShop 1.7.6.1的要求,但可以检查是否有必要的PHP扩展缺失:

  • 进入PrestaShop后台「高级参数」→「信息」,查看服务器配置部分是否有红色警告;
  • 重点确认mbstring、json、zip这些扩展是否正常启用,缺失扩展可能导致后台JS资源生成异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:44:23