请求已内联 Dijit 模板的 Dojo 构建

Posted

技术标签:

【中文标题】请求已内联 Dijit 模板的 Dojo 构建【英文标题】:Dojo build requesting already inlined Dijit templates 【发布时间】:2013-06-09 11:48:34 【问题描述】:

我是一个大型 Dojo 项目的开发人员,我在使用 Google Closure 编译器时遇到了一些问题。

我们有大约一百个用于 Dijit 小部件的模板,因此计划是让 Closure 编译器将 html 内联到 javascript 文件中,而不是要求它们采用 AMD 样式。

为了实现这一点,我将 /profiles/app.profile.js 中的“mini”参数从 true 更改为 false。

编译时,一切似乎都正常,即使在运行应用程序时我也没有问题,但发生了一些奇怪的事情。

即使 HTML 模板在 dojo.js 文件中正确内联,dojo 仍在向服务器发出对相应模板文件的 HTTP 请求!

通过检查 Closure 编译器生成的“美化”版本,我可以观察到每个 HTML 模板存在于两个不同的位置:

1) 在 JavaScript 中内联,格式如下:

"url:path/to/my/template.html":"<p>Some more HTML</p>"

2) 作为 AMD 要求中的必需伪模块:

   dojo/text!./path/to/my/template.html

我在他们网站的 BuildSystem 类别中搜索了错误报告:BuildSystem,但最终找不到任何相关帮助。

这是我只是错误地使用了 Google Closure Compiler 还是这是一个开放/未报告的错误?

如何解决此问题?

提前非常感谢!

【问题讨论】:

【参考方案1】:

如果您指的是仅存在于 1.9.0 中的问题,则为 https://bugs.dojotoolkit.org/ticket/17141。

【讨论】:

以上是关于请求已内联 Dijit 模板的 Dojo 构建的主要内容,如果未能解决你的问题,请参考以下文章

ajax 请求后重新加载 dojo 小部件

dojo.byId 和 dijit.byId 有啥区别?

最佳实践 - 将 dojo/dijit 升级到 dojo2 应用程序

Dijit 树和 postCreate 事件 (dojo 1.3)

Dojo - dijit / ComboBox - 鼠标选择不起作用

Dojo - Dijit.Tree - 更新树