如何修复 magento 中导致 wsod 的致命错误?
-
12-12-2019 - |
题
我正在使用 Magento 社区版 1.7.0.2。
通过缓存管理清除 js/css 缓存后,LightBox2 停止工作。
我收到以下错误:
PHP Fatal error: Call to a member function addItem() on a non-object in home/*******/public_html/app/code/community/IG/LightBox2/Block/Catalog/Product/View/Media/Gallery.php on line 163
前端现在只显示 WSOD/空白页。
我努力了:
- 注释掉第 162 和 163 行,
- 清除缓存,
- 登录/注销,
- 取消注释 index.php 中的行以显示错误,
- 禁用模块,
- 通过 magento connect 卸载/重新安装
关于去哪里调试这个问题有什么建议吗?或者我应该从备份中恢复?
解决方案
首先,我建议向开发扩展程序的人员寻求支持。更好的 Magento 扩展商店和独立开发人员始终是帮助您解决问题的最佳人选。
至于您的具体问题,您的错误消息抱怨的代码在这里
foreach ($this->_jsList as $js)
$this->getLayout()->getBlock('head')->addItem('skin_js', $js);
这意味着调用 $this->getLayout()->getBlock('head')
返回一个非对象,很可能是布尔值“false”。
我能想到发生这种情况的原因只有三个。
您在 Magento 没有实例化“head”对象的页面上使用它
您所做的其他一些自定义/您安装的模块尝试重写
page/html_head
块类,但这样做不正确,以致 Magento 无法实例化“page/html_head”块您进行的其他一些自定义/您安装的模块 删除 头块
由于无法接触到任何具有基本 Magento 技能的人,我会开始比较您的系统和/或主题文件与其他文件。标准安装。
不隶属于 StackOverflow