Zend Framework和FireFox不一致崩溃

时间:2011-06-19 05:15:32

标签: zend-framework

我们的网站在加载/重新加载页面时在FireFox中间歇性地崩溃。该站点使用Zend Framework 1.11.7构建。问题出在我们的生产服务器(共享主机)上,它似乎只发生在使用FireFox,所有其他浏览器我们都无法复制问题。开发服务器工作正常。该网站已经过验证,除了我们使用的Adobe Strobe Media Player有通常的验证错误。

当它崩溃时我们通常会看到

  

请与服务器管理员联系,[无地址]并通知他们>发生错误,以及可能导致错误的任何事情。

     

服务器错误日志中可能提供了有关此错误的更多信息。

     

0 HTTP / 1.1 200 OK日期:2011年6月19日星期日04:33:13 GMT服务器:Apache / 2.2.17(Unix)&gt; &GT; &gt; FrontPage / 5.0.2.2635 X-Powered-By:PHP / 5.2.17 Keep-Alive:timeout = 5,max = 99 Connection:Keep-&gt; Alive Transfer-Encoding:chunked Content-Type:text / html 38fd < / p>

以上消息可以在正文中,也可以是正文中唯一的内容以及html源代码。我们还看到上面的消息替换了Javascript / jQuery代码。

有时网站将加载没有CSS,其他时候没有Javascript(jQuery)。

我们的服务器日志中没有错误。

根据症状,似乎bootstrap.php文件未正确加载。

我们使用的是默认的.htaccess,我们的bootstrap.php是

<?php

类Bootstrap扩展了Zend_Application_Bootstrap_Bootstrap {

protected function _initView() {
    $view = new Zend_View();
    $view->doctype('XHTML1_TRANSITIONAL');

    $view->headTitle(' News')
        ->setSeparator(' - ');

    $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=utf-8');

    $view->headLink(array('rel' => 'shortcut icon',
      'href' => '/css/images/favicon.ico'), 'PREPEND');

    $view->headScript()->appendFile('/js/jquery-1.6.1.min.js')
        ->appendFile('/js/jquery-ui-1.8.13.custom.min.js')
        ->appendFile('/js/validate.js')
        ->appendFile('/js/bloom.js');

    $view->headLink()->appendStylesheet('/css/main.css')
        ->appendStylesheet('/css/trontastic/jquery-ui-1.8.13.custom.css');

    // Add it to the ViewRenderer 
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
    $viewRenderer->setView($view);

    // Return it, so that it can be stored by the bootstrap 
    return $view;
}

protected function _initAutoload() {
    // Add autoloader empty namespace 
    $autoLoader = Zend_Loader_Autoloader::getInstance();
    $autoLoader->registerNamespace('BloomData_');
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
          'basePath' => APPLICATION_PATH,
          'namespace' => '',
          'resourceTypes' => array(
            'form' => array(
              'path' => 'forms/',
              'namespace' => 'Form_',
            ),
            'model' => array(
              'path' => 'models/',
              'namespace' => 'Model_'
            ),
          ),
        ));

    // Return it so that it can be stored by the bootstrap 
    return $autoLoader;
}

protected function _initRoute() {
    $ctrl = Zend_Controller_Front::getInstance();
    $router = $ctrl->getRouter(); // returns a rewrite router by default

    $ir = new Zend_Controller_Router_Route_Regex('id/(.*)',
            array('controller' => 'index', 'action' => 'index'),
            array(1 => 'id'));

    $router->addRoute('idRoute', $ir);

    $sr = new Zend_Controller_Router_Route_Regex('sector/(.*)/id/(.*)',
            array('controller' => 'index', 'action' => 'index'),
            array(1 => 'sector', 2 => 'id'));

    $router->addRoute('sectorRoute', $sr);

    $dr = new Zend_Controller_Router_Route_Regex('date/(.*)/id/(.*)',
            array('controller' => 'index', 'action' => 'index'),
            array(1 => 'date', 2 => 'id'));

    $router->addRoute('dateRoute', $dr);
}

}

2 个答案:

答案 0 :(得分:0)

我认为这不是Firefox或任何其他浏览器的问题。看来你没有设置合适的标题,这就是你获得分块内容的原因。尝试添加.htaccess这些行:

SetEnv force-response-1.0 1
SetEnv downgrade-1.0 1

答案 1 :(得分:0)

Zend建议使用最新的PHP版本。尝试联系您的分片托管服务提供商,并要求他们升级到最新的PHP 5.3版本。我有类似的奇怪的崩溃只能通过更新php版本来解决。

同时确认您在开发和运行中运行相同的zend框架版本生产