0

奇妙な問題が発生しました。私は単純に2つのphpページを持っています:Index.html.phpそしてプロジェクトHeader.phpで実行されているHTMLコードだけを含んでいます。Symfony2インデックスページには、ごく普通のインクルードが含まれていますinclude "Header.php"。問題は、ページが正常にレンダリングされるときに初めてインデックスをロードすると、すべてが適切に配置されているのに、2回目にページを更新すると、次のエラーが発生することです。

at ErrorHandler ->handle ('2', 'include(Header.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory', '', '30', array('template' => object(FileStorage), 'parameters' => array('app' => object(GlobalVariables)), '__template__' => object(FileStorage), 'this' => object(PhpEngine), 'app' => object(GlobalVariables), 'view' => object(PhpEngine)))
in wamp\www\**\src\**\**Bundle/Resources/views/Default/Index.html.php at line 30 

at include ()
in wamp\www\**\src\**\**Bundle/Resources/views/Default/Index.html.php at line 30 
at require ('')
in C:\wamp\www\**\app\cache\dev\classes.php at line 2490 

at PhpEngine ->evaluate (object(FileStorage), array('app' => object(GlobalVariables)))
in C:\wamp\www\**\app\cache\dev\classes.php at line 2440  

at PhpEngine ->render ('**Bundle:Default:Index.html.php', array())
in C:\wamp\www\**\app\cache\dev\classes.php at line 2778 

at PhpEngine ->renderResponse ('**Bundle:Default:Index.html.php', array(), null)
in C:\wamp\www\**\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Templating\DelegatingEngine.php at line 87

at DelegatingEngine ->renderResponse ('**Bundle:Default:Index.html.php', array(), null)
in C:\wamp\www\**\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Controller\Controller.php at line 99 

at Controller ->render ('**Bundle:Default:Index.html.php')
in C:\wamp\www\**\src\**\**Bundle\Controller\DefaultController.php at line 15

at DefaultController ->indexAction ()

at call_user_func_array (array(object(DefaultController), 'indexAction'), array())
in C:\wamp\www\**\app\bootstrap.php.cache at line 1421

at HttpKernel ->handleRaw (object(Request), '1')
in C:\wamp\www\**\app\bootstrap.php.cache at line 1385 

at HttpKernel ->handle (object(Request), '1', true)
in C:\wamp\www\**\app\bootstrap.php.cache at line 1561

at HttpKernel ->handle (object(Request), '1', true)
in C:\wamp\www\**\app\bootstrap.php.cache at line 612

at Kernel ->handle (object(Request))
in C:/wamp/www/**/web/app_dev.php at line 28

ファイルを確認しましたが、実際にはインデックスファイルと同じディレクトリにあります。大文字と小文字もチェックしました。プロジェクトはSymfonyで作成されており、すべてがうまくいったことに注意してください。しかし、Sf2.1プロジェクトを作成してファイルを配置すると、この問題が発生しました。私はWindows7とWampServer2.1を使用しています。この問題について十分な情報を提供できればと思います。

4

1 に答える 1

0

最初のリクエストでphpは新しいテンプレートをレンダリングし、次のリクエストでphpはキャッシュからテンプレートをレンダリングします。Header.phpはキャッシュされないため、phpはファイルが見つからないという例外をスローします。

includeの代わりにrender関数を使用してください。これをチェックして他のテンプレートを含めるか、フルパスを渡してinclude()を実行できます

于 2012-10-25T10:55:50.340 に答える