Уведомление, внезапная ошибка: предупреждение: include (): имя файла не может быть пустым
Вопрос
С этого вечера мы видим эту ошибку.
Сначала мы видим это в журнале ошибок
2013-08-11T18:46:59+00:00 ERR (3): Warning: include(): Filename cannot be empty in app/code/core/Mage/Core/Block/Template.php on line 241
2013-08-11T18:46:59+00:00 ERR (3): Warning: include(): Filename cannot be empty in app/code/core/Mage/Core/Block/Template.php on line 241
2013-08-11T18:46:59+00:00 ERR (3): Warning: include(): Failed opening '' for inclusion (include_path='lib/minify:app/code/local:app/code/community:app/code/core:lib:.') in app/code/core/Mage/Core/Block/Template.php on line 241
И за полной печати мы видим следующее.
Я пытался отключить уведомления, но не знаю, с чего начать (и как это внезапно происходит)
Warning: include(): Filename cannot be empty in app/code/core/Mage/Core/Block/Template.php on line 241
#0 app/code/core/Mage/Core/Block/Template.php(241): mageCoreErrorHandler(2, 'include(): Filename cannot be empty', 'app/code/core/Mage/Core/Block/Template.php', 241, Array)
#1 app/code/core/Mage/Core/Block/Template.php(241): Mage_Core_Block_Template->fetchView()
#2 app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/base/default/template/system/cache/notifications.phtml')
#3 app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#4 app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#5 app/code/core/Mage/Adminhtml/Block/Cache/Notifications.php(62): Mage_Adminhtml_Block_Template->_toHtml()
#6 app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Cache_Notifications->_toHtml()
#7 app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
#8 app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Text_List->_toHtml()
#9 app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml()
#10 app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('notifications', true)
#11 app/design/adminhtml/default/default/template/page.phtml(55): Mage_Core_Block_Abstract->getChildHtml('notifications')
#12 app/code/core/Mage/Core/Block/Template.php(241): include('app/design/adminhtml/default/default/template/page.phtml')
#13 app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/default/default/template/page.phtml')
#14 app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#15 app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#16 app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Template->_toHtml()
#17 app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
#18 app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
#19 app/code/core/Mage/Adminhtml/controllers/DashboardController.php(43): Mage_Core_Controller_Varien_Action->renderLayout()
#20 app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Adminhtml_DashboardController->indexAction()
#21 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#22 app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Mage_Core_Controller_Request_Http)
#23 app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#24 app/Mage.php(683): Mage_Core_Model_App->run(Array)
#25 index.php(88): Mage->run('default', 'store')
Решение
К сожалению, в вашем вопросе недостаточно информации, чтобы точно отлаживать это, и, основываясь на специфике вашего стека вызовов, похоже, что эта система получила несколько настройки, которые могут вмешиваться в стандартное поведение в магазине. Вот некоторые наблюдения, которые могут помочь вам отследить проблему
Magento пытается
include
Шаблонный блок с пустой строкой, установленной в шаблоне. Вот почему вы видите предупреждение. Ищите любой новый (или старый)setTemplate
, или жеtemplate=""
В вашем коде или любом месте, как блок шаблона создается без установки шаблонаMagento пытается отобразить шаблон
system/cache/notifications.phtml
- однако, факт, что он вернулся кbase
дизайн пакет для этого означает, что Magento не мог найти этот файл в Любыеadminhtml
пакет/тема. Это фондовый файл, который поставляется с системой, и, возможно, был удаленВы говорите, что видите это «везде», но ошибки указывают на то, что это проблема только администратора. Это может означать, что вы пытаетесь запустить код администратора с передней части наоборот (опять же, трудно отлаживать такого рода)
Другие советы
Видеть Как я могу отладить «пустой шаблон»: имя файла не может быть пустым в Template.php
Мы решили это, добавив
if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
if (empty($includeFilePath)) {
Mage::Log("Cannot set emptt filename" . $fileName . " on a " . get_class($this) );
Mage::log(Mage::printDebugBacktrace(), null, 'backtrace.log'); //or you can even log the backtrace
include $includeFilePath;
} else {
include $includeFilePath;
}
} else {
Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
}
где «mage :: printdebugbacktrace ()» был схвачен отсюда
http://www.blog.magepsycho.com/utilizing-debug_backtrace-function-for-magento-debugging/
Таким образом, у нас было больше информации, чтобы пройти ...
Все вышеупомянутые ответы верны. Я просто хотел добавить конкретный случай, который, я думаю, многие люди могут споткнуться.
Если вы используете Modman для управления своими модулями (или любых других модулей Symling Manager), убедитесь, что ваш файл Modman содержит правильные пути, а после этого вы сделали:
modman deploy namespace_module
.
Лично я обнаружил, что теряю не менее 15 минут для отладки такой очевидной вещи при разработке какого -либо модуля и использую команду Generate -Modman, чтобы сэкономить время - после того, как это забыл о том, чтобы снова его вызовать, так что она добавила вновь созданные файлы и развернут символические ссылки. место.