仅在heroku上部署的版本上使用firefox时出错

时间:2014-06-06 10:02:31

标签: heroku meteor

这个问题让我发疯了,它给我带来了很多时间。

我的Meteor应用程序在我的本地开发计算机上运行良好,但当我使用BUILD_PACK = https://github.com/oortcloud/heroku-buildpack-meteorite.git进行部署时,我遇到了一个问题使用Firefox,这给我一个通用错误

"Exception from Deps afterFlush function function: "

...但我无法查看调用堆栈或生成的位置。

我检查构建包和本地开发机器使用相同的node.js版本(v0.10.26),显然在本地使用Meteor集成的MongoDB和heroku使用Mongolab服务。

我不知道如何找到问题。

在heroku构建版本上,Chrome就像魅力一样, Firefox有问题。 在本地计算机上, Chrome和Firefox都可以正常运行

我也尝试过demeteorize,但问题是一样的......

编辑:

Firefox调试控制台错误在第1行(43c9ee3da328e93321624a3179d27858c654879d.js:1)

如何在没有js minify的情况下在heroku上部署?

EDIT2:

我已部署在* .metor.com上,工作良好! (有和没有--debug标志) 问题/错误是heroku和/或build pack ......但是在哪里?!?

解决方案:

我犯了一个大错。从外部库抛出错误。这个库只在firefox上提供这个问题。

Firefox控制台调试日志不报告库错误,因为对此API库的调用是在观察者方法中完成的。

heroku和本地开发机器都存在这个问题......我感觉非常愚蠢

感谢你的支持广告时间!

1 个答案:

答案 0 :(得分:1)

此错误来自您的客户端代码,其部署方式不可能更改它(Demeteorizer,改为使用meteor部署等)

这些错误通常来自您在尚未准备好的情况下读取数据。在你的本地主机上,延迟是如此之低,通常数据立即就绪,你不会注意到这个问题。

这是可能导致此类问题的代码示例:

var firstname = People.findOne().name;

这里的假设是人员收集准备就绪。如果未就绪People.findOne()返回null并且正在查找.name,则会在加载页面时抛出错误。

要解决此问题,您必须找到您使用上述代码的位置(显然您的代码和结构会有所不同)并检查集合是否已准备就绪,或者搜索的结果是否实际存在。

同样,这只是错误最有可能发生的地方。还有很多其他原因可能导致错误。 Firefox的调试控制台并不具有描述性,因为Chrome很难调试。

它甚至可能是第三方依赖没有加载,你试图在模板助手的某个地方使用它。