我的野心已经超出了我在 Zend Framework 项目中实现 Dojo 的能力,该项目使用 PHP 和 Mysql 的 XAMPP 发行版作为我在 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 ” & page 在页头中嵌入了以下内容:
<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 配置没有认识到需要将 dojo.js 用于 V1.7(尽管我不确定问题实际出在哪里)。因此,我必须承认,除了让自己受制于集体 SO 专业知识的摆布之外,我不知道如何解决这个问题。
引导程序.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