我使用命令在meteor托管上发布了一个应用程序:
meteor deploy spyermeteor
应用程序在http://spyermeteor.meteor.com上呈现,但客户端没有使用任何数据。
如果我这样做,我可以看到应用程序在服务器端运行良好:
meteor logs spyermeteor
然后检查浏览器控制台,我发现我可以访问数据库:
Annonces.find().count() // per exemple
您如何解释反应性在客户端无效?也许我的构思出了问题,但在我的电脑(Windows)和VM(Linux debian)上运行良好。 欢迎任何帮助。
获取答案 0 :(得分:1)
在生产模式下,所有文件都连接在一起并缩小为一个javascript文件。如果代码中某处甚至出现轻微的语法错误,则其余代码将无法执行。
查看已部署的站点,您必须拆分客户端和服务器端代码。我收到错误
Uncaught ReferenceError: Npm is not defined
这意味着只能在服务器上运行,但是当它应该只在服务器上运行时,在客户端上运行使用Npm
的代码。它还会在生产模式中导致错误,但由于文件没有连接在一起。缩小错误不会阻止其他javascript文件运行。
您可以将此代码移至/server
或if(Meteor.isServer) {..}
块中的文件
看起来您的代码是为< = Meteor 0.5.9制作的。您应该将本地实例升级到0.6.2,并在部署应用程序之前在js控制台中查找所有这些异常。