我已经达到了这样一个程度,即我的野心超出了我在Zend Framework项目中使用XAMPP发行版实现Dojo的能力。 Mysql作为我在Windows 7机器上的开发/测试环境。老实说,我不知道这是一个ID10T问题(我)还是系统故障。如果这不是我的失败,我会事先道歉。
我正在尝试使用V1.7版本的Dojo实现,同时保留在生产就绪环境中(因此避免跳转到ZF 2等)。我从文档中了解到,在Dojo V1.7中,dojo.xd.js已被dojo.js取代。我的问题在于尝试使用Dojo的CDN源。
我的页面的dojo内容呈现正常,但Firebug显示错误“NetworkError:404 Not Found - 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-&gt; dojo;'引入问题的声明。 在bootstrap文件中将'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
答案 0 :(得分:1)
请注意,如果您从1.6或更早版本升级,我们不再区分dojo.js和dojo.xd.js(所有版本都与新加载程序跨域工作),因此请更新您的URL以引用to dojo.js。
所以Dojo助手使用文件名dojo.xd.js(跨域版本),但在1.7中它应该只是dojo.js. Dojo 1.7在Dojo集成到ZF之后发布,所以这可能是ZF本身的一个错误。