IBM Worklight 6.0 - Dojo 库在部署后使用 localhost

Posted

技术标签:

【中文标题】IBM Worklight 6.0 - Dojo 库在部署后使用 localhost【英文标题】:IBM Worklight 6.0 - Dojo library uses localhost after deploy 【发布时间】:2013-07-18 15:37:52 【问题描述】:

我有一个使用新的 Dojo 1.9 库的 Worklight 6.0 项目,我创建了一个外部 dojo 项目,就像文档中建议的那样,然后,在主项目属性的“Dojo 工具包”下,它引用了这个 dojo19 项目。

该项目在本地服务器上运行,然后我做了“运行方式”| “为远程服务器构建...”,并输入正确的域:端口和上下文路径,单击构建,*.wlapp 文件已更新。 (我还更新了已安装 war 中“Web 模块的环境条目”中的 publicWorkLightHostname / publicWorkLightPort / publicWorkLightProtocol 的设置,以匹配远程服务器名称/端口/协议。)

但是,在部署了 war 和 -all.wlapp 文件后,访问应用程序时,当它尝试引用 dojo19 库时出现 JS 错误:

    The page at 
https://<myIP>:9443/<myproject>/apps/services/www/ /mobilewebapp/default/IODMobile.html 
ran insecure content from http://localhost:64441/dojo19/<myproject>/IODMobile/mobilewebapp/dojo/nls/core-web-layer_en-us.js.

dojo19 是我上面提到的 Worklight 开发人员工作区中的项目名称。

为什么要尝试 localhost?似乎在将 dojo 库项目部署到 Worklight 中缺少一步。

【问题讨论】:

【参考方案1】:

您在收到错误消息时尝试在哪里预览应用程序?

See the changes in Dojo in Worklight 6.0 如果在模拟器/模拟器/设备中启动应用程序,see Billy Rowe's answer in this question

部分复制/粘贴:

第 1 步:验证您的应用程序在移动浏览器模拟器中是否正常工作 选中提供图书馆资源。如果控制台日志显示 从服务器提供资源,然后必须复制这些资源 在部署到 AVD 或设备之前添加到您的应用程序

第 2 步:在您认为自己拥有所有 Dojo/资源之后 项目,取消选中提供库资源并在 MBS 中再次测试。 如果它在 MBS 中失败,那么您的应用程序中缺少某些东西 在图书馆/服务器中。您可以检查提供图书馆资源和 重新测试以查看它是否向您显示那是什么。并非所有资源都 显示,例如如果缺少 CSS 文件。

我还建议在开始部署 .war 文件和 .wlapp 文件等之前在开发环境(即在 Eclipse 中)中完成所有这些操作......(顺便说一句,我希望你在做based on the new instructions for Worklight 6.0)

【讨论】:

我从控制台上的“获取应用程序 URL”中获取了 url,因此,我试图从生产 Worklight 安装中查看它。而且,是的,我正在按照 Worklight 6.0 的说明进行操作。 Get App URL... 这是移动网络环境吗?无论如何,您可以验证步骤 1 和 2 是否正确吗?你做过什么或尝试过吗? 此外,该项目可以与 Worklight Developer 环境中的本地移动浏览器模拟器一起正常工作。 “控制台”日志不显示任何“从服务器提供”的资源(或任何其他资源)。 在开发环境中,在 Eclipse 中,当您预览应用程序以及使用获取应用程序 url 时,它会以同样的方式工作还是失败? 另外,这是一个移动网络应用,我没有看到“提供图书馆资源”复选框。【参考方案2】:

在信息中心,它将向您展示如何取消选中控制台日志中的提供图书馆资源。

我认为您遇到的是: 1) Dojo Library/Server 正在提供一些东西 2) 6.0 中的一个错误,它使用“localhost”而不是主机的 IP(您的机器运行 eclipse)。这在 6.0 iFix 中已修复。通过此修复,您可以在 Studio 外部运行您的应用程序,并且仍然使用 Dojo 库/服务器。如果不进行此修复,您的应用中必须拥有所需的一切。

您能否安装 iFix 并告诉我们是否解决了问题?

【讨论】:

DOJO 库也在应用程序中(看起来没有办法不定义外部 DOJO 库,是吗?)。似乎“为远程服务器构建”应该处理所有这些,不是吗? 安装了icix,同样的问题。另外,我们在项目中有“预建”的 dojo 库本地,在服务器上安装后,它找不到 dojo 库(observerable.js 是第一个错误)。

以上是关于IBM Worklight 6.0 - Dojo 库在部署后使用 localhost的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0 - Dojo 库在部署后使用 localhost

IBM Worklight 6.0 - dojo.js:21 中的 scriptError

IBM Worklight 6.0 - 如何覆盖后退按钮?

IBM Worklight 6.0 - 无法在 avd 上使用适用于 android 环境的 dojo 工具包运行示例混合 Worklight 应用程序?

IBM Worklight 6.0 - 在加载框架库和 css 时,在混合应用程序(使用 Dojo 工具包 1.9)中获得了明显的亮点?

IBM Worklight 6.0 - 无法将应用程序发布到 Application Center?