通知、突然のエラー:警告: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')
解決
残念ながら、これを正確にデバッグするのに十分な情報がありません。コールスタックの詳細に基づいて、このシステムは標準のストアの動作を妨げる可能性のあるいくつかのカスタマイズを受け取ったようです。問題を追跡するのに役立つかもしれないいくつかの観察結果があります
マゼントはしようとしています
include
テンプレートのように空の文字列セットを備えたテンプレートブロック。だからあなたは警告を見ています。新しい(または古い)を探すsetTemplate
, 、 またtemplate=""
コード、または任意の場所でテンプレートブロックがテンプレートを設定せずにインスタンス化されますMagentoはテンプレートをレンダリングしようとしています
system/cache/notifications.phtml
- しかし、それが倒れたという事実base
これを行うための設計パッケージは、Magentoがこのファイルを見つけることができなかったことを意味します どれかadminhtml
パッケージ/テーマ。これはシステムに出荷されるストックファイルであり、削除された可能性がありますあなたはそれを「どこでも」と見ていると言いますが、エラーはそれが管理者のみの問題であることを示しています。これは、その逆のフロントエンドから管理コードを実行しようとしていることを意味するかもしれません(繰り返しますが、この種のことをリモートでデバッグするのは難しいです)
他のヒント
見る 「空のテンプレート」をデバッグするにはどうすればよいですか:filenameは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を使用してモジュール(または他のモジュールSymlinking Manager)を管理している場合は、ModManファイルに適切なパスが含まれていることを確認し、その後、次のことを確認してください。
modman deploy namespace_module
.
個人的には、モジュールを開発し、Generate -Modmanコマンドを使用して時間を節約するときにそのような明白なものをデバッグするために少なくとも15分間失うことに気付きました。場所。