Mage_Core_Exception:无效的块类型 - 块仅适用于开发环境
Mage_Core_Exception: Invalid block type - Block only working on development environment
我们设置了 3 个环境,它们目前是精确副本,并使用 GIT 进行管理。
环境:
- Develop(发展)
- 验收(测试)
- 硕士(直播)
我为一个显示一些产品的块开发了一个自定义模块。该模块在所有 3 个环境中均处于活动状态,并通过管理员显示在模块列表中。
为了显示块,我在 CMS 页面上使用 XML 更新,此页面在所有 3 个环境中也完全相同。
该块以某种方式显示在 Develop
上,但不显示在 Acceptance
或 Master
上,而 Develop
不会在其他环境中记录任何错误或异常我确实收到以下异常:
2018-09-18T12:12:40+00:00 ERR (3):
Mage_Core_Exception: Invalid block type: BeterSport_CustomUpsellList_Block_Customupselllist in /data/web/staging/app/Mage.php:595
Stack trace:
#0 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block ty...')
#1 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('BeterSport_Cust...', Array)
#2 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('customupselllis...', 'customupselllis...')
#3 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('customupselllis...', 'customupselllis...')
#4 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /data/web/staging/app/code/core/Mage/Cms/Helper/Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /data/web/staging/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_PageController), '231')
#9 /data/web/staging/app/code/core/Mage/Cms/controllers/PageController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_PageController), '231')
#10 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Cms_PageController->viewAction()
#11 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('view')
#12 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /data/web/staging/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#14 /data/web/staging/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#15 /data/web/staging/index.php(80): Mage::run('default', 'store')
#16 {main}
阻止无法正常工作的原因是什么,为什么它在 Develop
上有效?
分支是否部署在不同的环境中?
如果是这种情况,问题可能与环境及其数据库有关,而不仅仅是 git 个分支。
您是否在 CMS 块中显示您的块,例如:{{block type=rss/order_new}}
?
然后您必须在 Magento 面板内授予此块类型的权限。
在这里您可以按照正确的步骤进行操作:
https://docs.magento.com/m1/ce/user_guide/store-operations/permissions-content.html
如果问题发生在同一个数据库中并且您直接显示您的块
通过 XML 那么你应该在更改分支后刷新缓存并检查代码是否启用了模块(尝试使用 hello world 控制器)。
希望对你有帮助。
问候。
Mage_Core_Exception: Invalid block type
是由我的开发 (Windows) 和 Testing/Live (Linux) 环境之间的大小写敏感性差异引起的。
解法:
将块的 class 名称更改为正确的 Magento 命名约定,代码更改见下文。
发件人:
class Vendor_Module_Block_BlockNameHere extends Mage_Core_Block_Template {
收件人:
class Vendor_Module_Block_Blocknamehere extends Mage_Core_Block_Template {
Change BlockNameHere
to Blocknamehere
, starting with a capital only.
我们设置了 3 个环境,它们目前是精确副本,并使用 GIT 进行管理。 环境:
- Develop(发展)
- 验收(测试)
- 硕士(直播)
我为一个显示一些产品的块开发了一个自定义模块。该模块在所有 3 个环境中均处于活动状态,并通过管理员显示在模块列表中。
为了显示块,我在 CMS 页面上使用 XML 更新,此页面在所有 3 个环境中也完全相同。
该块以某种方式显示在 Develop
上,但不显示在 Acceptance
或 Master
上,而 Develop
不会在其他环境中记录任何错误或异常我确实收到以下异常:
2018-09-18T12:12:40+00:00 ERR (3):
Mage_Core_Exception: Invalid block type: BeterSport_CustomUpsellList_Block_Customupselllist in /data/web/staging/app/Mage.php:595
Stack trace:
#0 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block ty...')
#1 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('BeterSport_Cust...', Array)
#2 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('customupselllis...', 'customupselllis...')
#3 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('customupselllis...', 'customupselllis...')
#4 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /data/web/staging/app/code/core/Mage/Cms/Helper/Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /data/web/staging/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_PageController), '231')
#9 /data/web/staging/app/code/core/Mage/Cms/controllers/PageController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_PageController), '231')
#10 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Cms_PageController->viewAction()
#11 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('view')
#12 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /data/web/staging/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#14 /data/web/staging/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#15 /data/web/staging/index.php(80): Mage::run('default', 'store')
#16 {main}
阻止无法正常工作的原因是什么,为什么它在 Develop
上有效?
分支是否部署在不同的环境中?
如果是这种情况,问题可能与环境及其数据库有关,而不仅仅是 git 个分支。
您是否在 CMS 块中显示您的块,例如:{{block type=rss/order_new}}
?
然后您必须在 Magento 面板内授予此块类型的权限。
在这里您可以按照正确的步骤进行操作: https://docs.magento.com/m1/ce/user_guide/store-operations/permissions-content.html
如果问题发生在同一个数据库中并且您直接显示您的块 通过 XML 那么你应该在更改分支后刷新缓存并检查代码是否启用了模块(尝试使用 hello world 控制器)。
希望对你有帮助。 问候。
Mage_Core_Exception: Invalid block type
是由我的开发 (Windows) 和 Testing/Live (Linux) 环境之间的大小写敏感性差异引起的。
解法:
将块的 class 名称更改为正确的 Magento 命名约定,代码更改见下文。
发件人:
class Vendor_Module_Block_BlockNameHere extends Mage_Core_Block_Template {
收件人:
class Vendor_Module_Block_Blocknamehere extends Mage_Core_Block_Template {
Change
BlockNameHere
toBlocknamehere
, starting with a capital only.