Deployment 什么会导致meteor web应用程序中不同设备上的显示错误,并且只会捆绑一次
我的问题是,我的内容根本不显示在特定的设备/浏览器上,仅捆绑一次。无论设备或浏览器是什么,wep应用程序都会在调试中正确显示(从meteor运行) 编辑:在受影响的设备/浏览器上,我可以看到导航栏和页脚,但看不到Deployment 什么会导致meteor web应用程序中不同设备上的显示错误,并且只会捆绑一次,deployment,meteor,Deployment,Meteor,我的问题是,我的内容根本不显示在特定的设备/浏览器上,仅捆绑一次。无论设备或浏览器是什么,wep应用程序都会在调试中正确显示(从meteor运行) 编辑:在受影响的设备/浏览器上,我可以看到导航栏和页脚,但看不到屈服 到目前为止,已知受影响的设备/浏览器是Nexus 4上的Chrome(不在注释3中)和注释3上的Dolphin Dev环境是Windows,prod是Linux 我也尝试过直接在服务器上通过meteor运行应用程序,问题不在这里,但即使我从服务器捆绑应用程序,问题还是回来了 知道是
屈服
到目前为止,已知受影响的设备/浏览器是Nexus 4上的Chrome(不在注释3中)和注释3上的Dolphin
Dev环境是Windows,prod是Linux
我也尝试过直接在服务器上通过meteor运行应用程序,问题不在这里,但即使我从服务器捆绑应用程序,问题还是回来了
知道是什么原因和/或如何排除故障吗
编辑2
我终于可以确认这是一个客户端错误。
以下是设备上chrome控制台的错误
Exception from Deps recompute function: ReferenceError: Lists is not defined
at Object.Template.layout.helpers.lists (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:31:25567)
at http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:10:5624
at Object.e.call (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:27:20793)
at HTML.DIV.HTML.UL.UI.Each.UI.block.e [as __sequence] (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:27:28178)
at http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:10:4102
at http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:9:3419
at a (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:4791)
at n.extend._compute (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:5846)
at new e.Computation (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:5183)
at Object.n.extend.autorun (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:7042)
但是列表集合已定义、发布和订阅。最奇怪的是,当通过Meteor进行调试时,一切都运行良好。在我的具体案例中,集合定义位于应用程序根目录下的
/Collections
文件夹中。这导致应用程序在/client
文件夹之后加载它们,但仅在部署后加载,并且仅在某些设备/浏览器上加载
为了解决这个问题,我只需将
/collections
文件夹移动到/lib
中,再将其捆绑,然后将其推送到服务器,现在无论设备/浏览器是什么,一切都可以完美地工作。它可能是任何东西。如果您有服务器的shell访问权限,我建议您以调试模式(在服务器上)运行应用程序,并查看日志。他们应该会提供你需要的反馈。@apendua我确实在服务器上以调试方式运行了应用程序(nodejs myapp.js
),但控制台上没有出现任何问题,服务器端没有错误,应用程序在多个设备/浏览器上显示良好编辑我可以在设备/浏览器上看到导航栏和页脚,但看不到导致我头痛的yield
。我所说的调试模式更像是在克隆的repo目录中调用meteor--port…
,您在哪个文件中定义此列表
集合?列表集合是在/collections/Lists.js
中定义的,当使用meteor--port 80运行应用程序时,问题并不存在,即使它是从服务器运行的。这最终只是一个奇怪的加载顺序问题,只发生过一次捆绑。虽然我在Meteor文档中没有找到任何关于/collections
加载顺序的官方规范,但将它们放在/lib
下似乎可以解决这个问题。