2011-08-08 53 views
4

我正在使用Zend Framework并遇到myAction()被调用两次的问题。花了很多时间寻找其他具有相同经验的开发人员之后,似乎人们已经解决了一些主要问题。或者:Zend Framework 11.1.9执行两次的动作

- * .css/* .js文件或favicon没有找到,所以我尾随apache访问日志栏没有任何东西可以显示。

- 然后我查找了任何css中引用的图像。那里也没有运气。

- 最后我发现使用ZFDebug的用户遇到了问题,但由于我没有使用它或者没有安装,所以我不能排除故障。

如果任何人有任何想法,我可以尝试解决这个问题,我将不胜感激,如果你愿意与我分享。


UPDATE:

kinghfb和菲尔,

非常感谢您的答复。

您的信息非常清晰,所有非常好的建议。我仔细检查了我所有的CSS和js文件,因为我没有真正使用partials,但也有一些简单的检查工具。所有人都至少有4k,没有人是空的。我也试了一下菲尔提示修改:

SetEnv APPLICATION_ENV development 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

到:

SetEnv APPLICATION_ENV development 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

哪个也没解决我的问题。我之前没有说过,当我在动作中禁用布局时,它只运行一次。还有其他建议吗?

+0

您是如何注意到双重执行?它处理了两次吗?或者它是一个页面加载两次? – Orlando

+0

humm,我再次检查了我包含的CSS,ja和图像。我测试了htaccess修复程序,并且我评论了ZFdebug组件,但是我仍然有相同的双重调用问题。我的行动是调用一个MySQL存储过程 - 任何想法? – emeraldjava

回答

3

我遇到了同样的问题,并找到类似于您所描述的解决方案(Zend Debug,favicon.ico等)。但是,我没有运行任何这些东西。

你需要检查的是所有请求的文件实际存在并且大于0字节(JS,CSS,图像和-importantly-模板文件),否则系统将不会找到它并尝试Bootstrap该应用程序再次。这是因为当请求的文件大于0字节时,默认的mod_rewrite设置只能绕过引导程序。

希望是十分明显的,并帮助:)

+1

这一个曾经总是让我。愚蠢的,空的'common.css'文件:)。您也可以将重写条件从'-s'改为'-f'来跳过大小检查。 – Phil

1

感谢真多为这个答案kinghfb,你救了我大量的时间...

在我的布局文件我有那些3(即使控制器执行3次):

<img src="path/path/file.jpg" > 

我不得不这样做,而不是:

<img src="/path/path/file.jpg" > 

我发现这种方式是通过写入我的控制器中的文件(只做回声将不会显示它)

+0

你写了什么文件来表明图像资源无效?你可以发布一段代码吗? – emeraldjava