0

私の野心は、Windows7マシンの開発/テスト環境としてPHPとMysqlのXAMPPディストリビューションを使用してZendFrameworkプロジェクトにDojoを実装する能力を超えたところに到達しました。これがID10Tの問題(私)なのか、システム障害なのかは正直わかりません。これが私の側の失敗であるならば、私は前もって謝罪します。

実稼働環境にとどまりながら、V1.7バージョンのDojoを使用して実装しようとしています(したがって、ZF 2へのジャンプなどを回避しています)。ドキュメントから、DojoV1.7ではdojo.xd.jsがdojo.jsに取って代わられていることがわかりました。私の問題は、DojoにCDNソースを使用しようとすることにあります。

私のページのdojoコンテンツは正常にレンダリングされますが、Firebugはエラー「NetworkError:404 NotFound- http ://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.xd.js 」を表示しています。ページには、ページヘッドに次のものが埋め込まれています。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.xd.js"></script>

私のページで問題の原因を追跡すると、それが「echo $this->dojo;」であることがわかります。問題を紹介するステートメント。ブートストラップファイルで「setCdnVersion(1.7)」を「setCdnVersion(1.6)」に変更すると問題は解決しますが、V1.7+を使用したいと思います。

埋め込まれたURIをアドレスバーに貼り付けると、実際、404ページが見つかりません。Dogpileには、私が見ることができるこの特定のエラーへの参照はありません。私の限られた知識では、dojotoolkit.orgに関連するバグレポートが見つかりません。

私が持っているDojo構成は、V1.7でdojo.jsを使用する必要性を認識していないようです(問題が実際にどこにあるかはわかりませんが)。ですから、私は、SOの専門知識の集合体に翻弄される以外に、この問題を解決する方法に迷っていることを告白しなければなりません。

bootstrap.php:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
...
protected function _initView ()
{
    // Initialize view
    $view = new Zend_View();
    $view->setEncoding('UTF-8');
    $view->headMeta()->appendName('Content-Type', 'text/html; charset=UTF-8');

    // add dojo helper path to view
    $view->addHelperPath('Zend/Dojo/View/Helper','Zend_Dojo_View_Helper');

    // configure Dojo view helper, disabled...
    $view->dojo()
                 ->disable()
                 ->setCdnVersion(1.7)
                 ->setCdnBase(Zend_Dojo::CDN_BASE_GOOGLE)
                 ->addStyleSheetModule('dijit.themes.tundra')
                 ->setDjConfigOption('parseOnLoad', TRUE)
                 ->setCdnDojoPath(Zend_Dojo::CDN_DOJO_PATH_GOOGLE)  
                 ->useCdn();

    // 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;
}

}

index.phtmlの場合:

<head>
<?php echo $this->headLink()->prependStylesheet($this->baseUrl() . '/assets/css/site.css'); ?>

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.7/dijit/themes/tundra/tundra.css">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.7/dojox/grid/resources/Grid.css">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.7/dojox/grid/resources/tundraGrid.css">
<?php 
    // Dojo plug-in enablers ...
    echo $this->dojo(); 
    $this->dojo()->enable();
?>

バージョン情報:Xampp dist-V1.7.7(Apache / 2.2.21、PHP / 5.3.8)Zend Framework dist-V1.11.11

4

1 に答える 1

1

1.7リリースノートから:

1.6以前からアップグレードする場合、dojo.jsとdojo.xd.jsを区別しなくなることに注意してください(すべてのバージョンは新しいローダーとクロスドメインで動作します)。そのため、URLを更新してdojoを参照してください。 js。

したがって、Dojoヘルパーはファイル名dojo.xd.js(クロスドメインバージョン)を使用していますが、1.7ではdojo.jsのみである必要があります。Dojo 1.7はDojoがZFに統合された後にリリースされたため、これはZF自体のバグである可能性があります。

于 2012-07-16T12:43:34.903 に答える