我将现有的Magento站点移动到我的托管帐户以进行开发工作,但是当我尝试访问站点后端除管理仪表板以外的任何地方时,我收到以下错误:
Fatal error: Class 'Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element' not found in /magento/app/code/core/Mage/Core/Model/Layout.php on line 491
在数据库core_config_data table
中,我更改了web/unsecure/base_url
和web/secure/base_url
以匹配新域名。
在.htaccess
文件中,我已将RewriteBase /
更改为使用新的文件夹路径。
我收到的错误是指 Layout.php 文件中的第 491 行,这是以下函数的第 4 if
子句:
/**
* Create block object instance based on block type
*
* @param string $block
* @param array $attributes
* @return Mage_Core_Block_Abstract
*/
protected function _getBlockInstance($block, array $attributes=array())
{
if (is_string($block)) {
if (strpos($block, '/')!==false) {
if (!$block = Mage::getConfig()->getBlockClassName($block)) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
}
}
if (class_exists($block, false) || mageFindClassFile($block)) {
$block = new $block($attributes);
}
}
if (!$block instanceof Mage_Core_Block_Abstract) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
}
return $block;
}
上面的@waldek_c评论确实帮助我解决了这个问题,但我想我自己提出了一个答案来完成这个问题,以防其他人遇到类似的事情。
错误消息本身将我指向该问题。
Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element
是导致问题的文件的路径。 事实证明,当我上传网站时,文件没有正确上传。