如何在模数.io上托管的流星应用程序使用spiderable

Jea*_*oël 7 ssl modulus meteor

我正试图在我的使用SSL模拟托管的meteor应用程序上制作蜘蛛侠.我有Meteor 1.0,铁:路由器1.0,spiderable和phantomjs的节点包

所有人都在使用localhost.但是一旦我在Modulus上部署,首先我遇到了错误

spiderable: phantomjs failed: null
Run Code Online (Sandbox Code Playgroud)

然后,我在模块面板中添加了以下环境变量:

METEOR_PKG_SPIDERABLE_PHANTOMJS_ARGS = --ssl-protocol=tlsv1 --ignore-ssl-errors=yes --debug=true
Run Code Online (Sandbox Code Playgroud)

这仍然不起作用,并且调试在模数控制台中输出多次(就像它循环错误一样)以下消息:

2014-12-03T17:01:00 [DEBUG] WebPage - evaluateJavaScript "(function() { return (function () {
if (typeof Meteor === 'undefined'
    || Meteor.status === undefined
    || !Meteor.status().connected) {
  return false;
}
if (typeof Package === 'undefined'
    || Package.spiderable === undefined
    || Package.spiderable.Spiderable === undefined
    || !Package.spiderable.Spiderable._initialSubscriptionsStarted) {
  return false;
}
Tracker.flush();
return DDP._allSubscriptionsReady();
})(); })()" 
2014-12-03T17:01:00 [DEBUG] WebPage - evaluateJavaScript result QVariant(bool, false) 
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何解决这个问题,或者成功地使用SSL和spiderable在modulus.io上部署了一个流星项目.让我知道这样做的好方法:)

非常感谢 !

Jea*_*oël 4

我解决了我的问题如下:

  1. 我在本地安装了 phantomjs 并运行http://www.meteorpedia.com/read/spiderable/上提供的测试脚本

    phantomjs phantomtest.js

这给了我有关错误的更多详细信息:解析错误。然后,它是一个 JavaScript 文件,一旦编译/缩小,就会呈现由 select2 引起的错误。使用它的 js 库是 flat-ui.js ( http://designmodo.github.io/Flat-UI/ )。

我通过在 *.meteor.com 上测试许多部署并添加/删除 .js 文件发现了这一点。

  1. 我编辑 flat-ui.js 库以避免解析错误。

  2. 我在 modulus.io 和 *.meteor.com 上重新部署。在 *.meteor.com 上一切正常,但在 modulus.io 上仍然无法工作。这让我想到了 SSL 错误,但我只在 modulus.io 日志中看到“spiderable: phantomjs failed: null”。

  3. 我在模数面板中添加以下环境变量:

    METEOR_PKG_SPIDERABLE_PHANTOMJS_ARGS = --debug=true

看来这是一个“SSL 握手错误”:

[DEBUG] Network - Resource request error: 6 ( "SSL handshake failed" )
Run Code Online (Sandbox Code Playgroud)
  1. 我向 METEOR_PKG_SPIDERABLE_PHANTOMJS_ARGS 环境变量添加另一个选项:

    METEOR_PKG_SPIDERABLE_PHANTOMJS_ARGS = --ignore-ssl-errors=yes --debug=true

现在 modulus.io 上一切正常。

总结:

  • 解决 JavaScript 错误
  • 添加 METEOR_PKG_SPIDERABLE_PHANTOMJS_ARGS = --ignore-ssl-errors=yes

希望这对一些小伙伴有帮助