1

我正面临一个非常复杂的情况,其中Meteor,mupxROOT_URL环境变量。

我正在使用带有 Facebook 登录的 React 开发流星 1.2.1 应用程序。在应用程序代码中设置 ROOT_URL 全局变量时,它在本地开发以及meteor run ios/android.

然后我将应用程序部署到 Digital Ocean 服务器,mupx并为 iOS 和 Android 构建一个meteor build ./build --server=http://xxxxxx.com指向 Digital Ocean 服务器的版本。它在网络浏览器中运行良好,但是通过 iTunes 或 AppStore 将我的应用程序安装到 iOS 后,该应用程序在启动画面后立即卡在白屏,但仅在首次启动时。再一次,这仅在应用安装后发生一次。如果我关闭应用程序并重新打开它,它将正确加载并继续正常工作。同样的情况也发生在 Android 设备上。

这是我的文件:


**** settings.json ****

{
  "rootUrl": "http://xxxxxx.com",
  "facebook": {
    "appId": "xxxxxxxxxxxxxxxxxxxxx",
    "secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "loginStyle": "redirect"
  },
}

**** mup.json ****

{
  "servers": [
    {
      "host": "xxxxxx.com", // actual server
      "username": "user",
      "pem": "~/.ssh/pem.key",
      "env": {}
    }
  ],
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://xxxxxx.com"
  },
  "setupMongo": true,
  "setupNode": true,
  "nodeVersion": "0.10.40", // "0.10.43" for meteor-1.3
  "setupPhantom": true,
  "enableUploadProgressBar": true,
  "appName": "xxxxxx",
  "app": "../../app",
  "deployCheckWaitTime": 60
}

**** lib/_global.js ****

ROOT_URL = Meteor.settings.rootUrl;

**** server/accounts.js ****

ServiceConfiguration.configurations.upsert(
  { service: "facebook" },
  {
    $set: {
      appId: Meteor.settings.facebook.appId,
      secret: Meteor.settings.facebook.secret,
      loginStyle: Meteor.settings.facebook.loginStyle
    }
  }
);

我知道在这种情况下很难找到问题,但我猜它与MeteorwithROOT_URLmupx. 我花了很长时间调试并发现问题实际上是由于ROOT_URL变量而发生的。

PS:你会问我为什么要在应用程序代码中设置这个全局变量?那是因为accounts-facebook成功登录后没有正确重定向,而是挂在空白的 Facebook 屏幕上。Meteor - Facebook 授权根本不起作用

如果我从应用内代码中删除 ROOT_URL,白屏问题就会消失,但是 facebook 登录不会正确重定向。假设 Facebook 已正确设置为Deauthorize Callback URL = http://xxxxxx.com/_oauth/facebook.

PPS:也尝试将应用程序更新meteor v1.3-rc.13为。一样。

任何帮助都感激不尽。

4

0 回答 0