1

在 localhost 上,该应用程序运行良好。

在 EC2 上,应用程序在 nginx 后面运行。它加载到浏览器中,但没有任何显示。浏览器控制台显示错误

TypeError: 'undefined' is not an object (evaluating 'Package["service-configuration"].ServiceConfiguration')

我不知道如何解决这个问题。任何帮助表示赞赏。

编辑

  1. NGINX 不是问题。如果我直接访问流星服务器,则相同的行为。
  2. 运行“meteor add service-configuration”确实修复了上述错误,但没有错误并不能修复观察到的行为,即应用程序不会在 EC2 上呈现,而在 localhost 上启动时会呈现。(错误消息是 EC2 和 localhost 之间唯一可见的区别。所以我怀疑这就是原因。现在这个假设一定是错误的。)所以问题仍然存在。

问题解决了。课程:

Meteor 有调试模式和生产模式。两者的行为可能不同。在 localhost 上,meteor 默认以调试模式运行。在部署到 meteor.com 或 per mup 时,默认为生产模式。要在本地主机上以生产模式运行流星,请运行meteor --production.

4

2 回答 2

3

您似乎正在尝试访问service-configuration浏览器上的配置。

这些在客户端不可用。这也会影响您的本地主机应用程序,但它不会破坏您的应用程序(不会给您空白页),因为流星处于调试模式。

在调试模式下,Meteor 文件不会被连接,所以即使在你的 js 控制台上抛出这样的错误,也不会被注意到。在生产模式下,错误会停止脚本的其余部分(因为所有内容都连接到一个文件中)

您需要确保执行此操作的代码仅在服务器端运行。一般来说,在客户端访问服务配置数据并不是一个好主意。

于 2014-07-08T10:57:22.653 回答
0

看起来 Arunoda 和工作人员正在buildOptions.debug为 MUP 的下一个版本添加一个设置,这应该允许您通过 MUP 进行部署并让它像在localhost. 请参阅Arunoda 对相关问题的回答和(至少目前)MUP 开发版本的文档

于 2015-05-11T20:23:53.540 回答