【问题标题】:Running UI5 on Node JS server在 Node JS 服务器上运行 UI5
【发布时间】:2014-12-01 23:50:27
【问题描述】:

我正在尝试在 Node.js 服务器上运行我的 ui5 页面。到目前为止,我所做的是创建了一个 UI5 项目,其中包含一个简单的 index.html 文件,该文件调用我的其他 ui5 视图,显示一条文本消息。当我在没有节点 js 的情况下运行它时,它运行良好并向我显示消息。

我现在想要实现的是在我的节点服务器上运行它。所以我为我的节点配置了一个 server.js 文件,它可以正常启动。在那里我调用了我上面的 index.html 文件。它称它很好,但它在里面给出了一个错误,说 sap 是未定义的,这意味着它无法找到我的 ui5 资源,如 sap-ui-core.js 并因此出现错误。不知道为什么找不到。

我已经使用 eclipse 创建了 ui5 项目,它在下面的目录下为我提供了 ui5 资源,但是即使我尝试将资源目录放在 web 内容目录下,它也无法找到它。

手动放入资源目录后:

下面是我的 index.html 的样子:

它是否与我定义的资源根有关,或者如果你能建议我如何让它工作,请。

热切期待您的回复。

谢谢, 哇

添加到 cschuff 响应:

您好,感谢您花时间帮助我。是的,我的应用程序命名空间是不同的,绝对不是 sap.ui 的东西。虽然我有办法让它工作,但仍然想让它工作得更好,因为它更干净。我现在让它工作的方式是完全创建一个单独的节点项目,然后逐渐将我的 UI5 部分添加到其中,并且上帝的恩典现在运行良好。但是我不确定为什么如果我将相同的概念应用于在 eclipse 中创建的 UI5 项目,它会给我带来 sap is undefined 错误。

【问题讨论】:

  • 大家好,我看到当我尝试在节点 js 之外运行 index.html 时,它试图在 sap ui 目录中查找其他 js 文件,但无法加载它们,拒绝访问错误但不知道为什么。那为什么它不能在node js服务器上运行呢??
  • 网络选项卡从尝试加载 sap-ui-core.js 的位置说什么?

标签: node.js sapui5


【解决方案1】:

我唯一的建议是您错误配置了 node.js 服务器。尝试从头开始:

mkdir app
cd app
npm install -g express-generator
express -f
npm install
node .\bin\www

然后将您项目的所有文件和resource 放在public 目录中。并尝试打开http://localhost:3000/index.html

【讨论】:

  • 我设置环境的方式是在 Eclipse 中创建一个 UI5 项目,其中包含显示一些文本的简单 index.html。然后定义 package.json 没有任何依赖。然后我使用 node install --save express 在其中安装了 express,定义了我的 server.js 并启动了服务器。服务器启动正常。各个部分工作正常,就像我的服务器启动正常一样,预览调用 UI5 组件并显示文本的 ui5 索引工作正常,但是当我尝试在节点服务器上调用相同的 index.html 时,它没有获取资源。不知道为什么。请建议。
【解决方案2】:

/resources 由 com.sap.ui5.resource.ResourceServlet 提供(请参阅您的 web.xml;web.xml 和 Servlet 在 Java 世界中使用,例如由 Java 应用程序服务器或 Tomcat 等 Servlet 容器使用)

ResourceServlet 侦听 url 模式 /resources/* 意味着每次将请求发送到与此模式匹配的 url 时,ResourceServlet(Java 类)将介入,查找正确的 .jar 文件并返回所需的JavaScript 文件。这不适用于像 Apache 这样的普通 Web 服务器。

我对 express 了解不多,但我猜它无法运行 Java Servlet,因此无法像 Tomcat 那样交付您的 SAPUI5 资源。

要解决这个问题,您仍然有一些选择:

  1. 在开发时使用 Express 为您的应用程序源提供服务并从 Tomcat 加载 UI5。这可能会导致跨域问题(因为 localhost:8080 和 localhost:3000 被认为是不同的来源)

  2. 解压您需要的所有 UI5 .jar 并将它们放在 YourApplication/resources/ 中。

BR 克里斯

【讨论】:

  • 嗨,我已经尝试将资源文件夹中的 js 文件从 webcontent 目录下的 jar 文件中解压出来,如我的屏幕截图所示。即使这样,当我使用脚本标签路径(如 src="resources/sap-ui-core.js" )引用其中的脚本时,它也找不到它。
  • 你绝对不应该使用 sap.ui 作为你应用的命名空间!你能从你的/资源中发布一个截图吗?此外,查看开发工具的网络选项卡应该会提示您尝试从何处加载资源。也发一下
  • 很可能是你的resourceRoot。尝试使用不同的命名空间,例如 my.app。抱歉没有正确阅读您的问题;)
猜你喜欢
  • 2018-02-18
  • 2014-12-11
  • 2014-10-11
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 2023-02-18
  • 1970-01-01
相关资源
最近更新 更多