Rik*_*uta 12 javascript meteor iron-router
我在使用Iron Router和Spiderable在我的Meteor.js应用程序中很好地协同工作时遇到了麻烦.如果我?_escaped_fragment_=在我的本地主机上运行时测试了一个网址,它一切正常,但是当我推送到我们的DigitalOcean生产服务器时,我在尝试同样的事情时一直收到以下错误(请查看http://hreglobal.com/?_escaped_fragment_ =):
Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.
at Object.Meteor._nodeCodeMustBeInFiber (packages/meteor/dynamics_nodejs.js:9)
at _.extend.get (packages/meteor/dynamics_nodejs.js:21)
at RouteController.lookupOption (packages/iron:router/lib/route_controller.js:66)
at new Controller.extend.constructor (packages/iron:router/lib/route_controller.js:26)
at ctor (packages/iron:core/lib/iron_core.js:88)
at Function.Route.createController (packages/iron:router/lib/route.js:133)
at Function.Router.createController (packages/iron:router/lib/router.js:185)
at Function.Router.dispatch (packages/iron:router/lib/router_server.js:39)
at Object.router (packages/iron:router/lib/router.js:15)
at next (/opt/hre/bundle/programs/server/npm/webapp/node_modules/connect/lib/proto.js:190:15)
Run Code Online (Sandbox Code Playgroud)
一直试图找到原因几天,并开始有点绝望.欢迎任何指示!
造成这种情况的原因有以下几个:
当这种情况发生在生产中而不是本地时,这可能意味着包存在缩小问题。要测试这一点,您可以运行meteor build --debug,它会跳过缩小和部署。或者您可以使用meteor run --product 在本地运行,这将在本地运行并缩小。无论哪种方式都应该告诉你这是否是一个缩小问题。
针对生产问题而非本地问题的另一种选择是spiderable 的超时问题。可能值得增加超时看看是否能解决问题。不过我会先尝试缩小。
第三个生产问题(但不是本地问题)与 ROOT_URL 错误有关。这也值得快速检查。确保服务器配置使用的 ROOT_URL 可由服务器本身访问。
如果这种情况同时发生在本地和生产服务器上,则可能是由于发布调用未正确返回 read() 造成的。可以通过注释掉错误端点上的订阅来调试,直到找到错误的发布。
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |