Worklight 中的 Dojo 文件缓存

Posted

技术标签:

【中文标题】Worklight 中的 Dojo 文件缓存【英文标题】:Dojo File Caching in Worklight 【发布时间】:2013-11-11 14:58:24 【问题描述】:

当使用 Dojo 文件缓存和 Worklight 在模拟器中运行时收到 404 错误。似乎正在加载的文件没有从公共区域复制到设备。我还需要在我的项目中定义什么来实现这一点吗?必须有一个约定,我想继续遵循它,因为我希望项目中有更多的模板文件。

我在 .js 文件中的定义语句:

define(["dojo/_base/lang", "dijit/layout/ContentPane", "dojo/dom", "dojo/text!./templates/Order.html"], function(lang, ContentPane, dom, template)
...
var cp1 = new ContentPane(
            title:"Order",
            content: lang.replace(template, someJson)
         ).placeAt("temp");

我的文件夹结构: 在 common/js 目录中,我有一个 .js 文件中的上述代码,我有一个模板文件夹来保存 Order.html,我希望将来会有其他模板文件存储在那里。

控制台出错:

GET http://localhost:10080/DojoProject/apps/services/preview/DojoApp/windowsphone8/1.0/default/layers/templates/Order.html 404 (Not Found) 

【问题讨论】:

【参考方案1】:

您指定路径的方式似乎是,浏览器尝试在与“模板”同级的“层”文件夹中查找文件。

您是否尝试将“dojo/text!./templates/Order.html”修改为:“dojo/text!./../templates/Order.html”以向上导航一级,然后继续进入模板文件夹?

我不确定这是否可行,但我认为值得一试。

【讨论】:

是的,感谢您的回复,我之前尝试过。据我所知,Worklight 似乎没有在生成后复制模板文件。我能找到的唯一解决方法是将文件手动暂存到 Windows Phone 目标,但这不是一个很好的解决方案,因为所有设备都应该可以访问这样的常见文件。

以上是关于Worklight 中的 Dojo 文件缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何将 dojo javascript 文件导入 worklight 应用程序?

wl 6.1 中的 worklight apk 中缺少 dojo/_base/*js

IBM Worklight 6.0 - Worklight Starter Dojo 示例损坏?

IBM Worklight 5.0.6 - 无法添加外部 Dojo 组件(需要 Dojo Dgrid 时出现脚本错误)

Worklight 和 dojo:绘制 iOs 环境的问题

Worklight 5.0.5 插件中的 Dojo 调色板是不是存在拖放问题?