0

我有一个在 3000 端口上运行的流星应用程序

现在http://1.2.3.4:3000按预期工作。

我正在尝试将流星应用程序公开为文档根目录之外的目录,因此在同一个框中,我在端口 80 上运行了 nginx,配置如下:

server {

  ...

  server_name my.test.com

  ...

  location /meteor{
    proxy_redirect off;
    proxy_set_header   X-Real-IP            $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_set_header   Host                   $http_host;
    proxy_set_header   X-NginX-Proxy    true;
    proxy_set_header   Connection "";
    proxy_http_version 1.1;
    proxy_pass  http://localhost:3000;
  }

  ...

}

现在,当我加载时,http://1.2.3.4/meteor我得到:

<script type="text/javascript">
__meteor_runtime_config__ = {"ROOT_URL":"meteor","serverId":"ABC12345"};
</script>

<script type="text/javascript" src="/26b7ea5a393eddd33c2278e17dc1d537732e9553.js"></script>

不,它试图从根路由src="/26b7e... 中包含 js...所以它失败了。

我发现一些信息表明需要设置 ROOT_URL 环境变量。我已将其设置为“流星”,这是我在 nginx 中的路由名称,但它似乎不会影响此行为。我认为该变量只会改变 Meteor.absoluteUrl 的工作方式。

我如何告诉流星从哪里包含它的资源?我不想在根/路由上运行流星。

4

1 回答 1

1

Meteor 0.6.5 之前似乎不支持此功能。

以下是在 v0.6.5+ 上添加的

ROOT_URL 现在可能有一个路径部分。这允许在同一个域上提供多个 Meteor 应用程序。

因此,设置 ROOT_URL 环境变量可以实现我正在寻找的行为。

于 2013-09-02T22:57:52.843 回答