EC2部署上的Meteor Up(mup)与本地应用程序不同

时间:2014-07-08 10:25:12

标签: nginx amazon-ec2 meteor meteor-up

在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之间唯一可见的区别。所以我怀疑这是原因。现在这个假设一定是错的。)所以问题仍然存在。
  3. 解决了问题。课程:

    Meteor具有调试模式和生产模式。两者可能表现不同。在localhost上,meteor默认以调试模式运行。在部署到meteor.com或每个mup时,默认为生产模式。要在localhost上以生产模式运行meteor,请运行meteor --production

2 个答案:

答案 0 :(得分:3)

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

这些不是客户端。这也会影响你的localhost应用程序,但它不会破坏你的应用程序(不会给你一个空白页面)因为meteor处于调试模式。

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

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

答案 1 :(得分:0)

看起来Arunoda和工作人员正在为下一版本的MUP添加UPDATE WordsTable SET counter = counter - 1 WHERE id='$deleteThisWord' IF (occ = 0) THEN ( DELETE * FROM WordsTable WHERE id='$deleteThisWord' ) 设置,这应该允许您通过MUP进行部署并使其在buildOptions.debug上运行。请参阅Arunoda's answer to a related question和(至少现在)documentation for the development version of MUP