这个问题与this有关SO 问题,但评论中推荐的使用 Meteor.absoluteUrl() 的解决方案似乎没有按预期工作。我希望能够将多个 meteor 应用程序部署到同一台服务器,并使用 nginx 作为每个应用程序的反向代理。
因为每个应用程序都是隔离的,所以没有一个应用程序可以从 ROOT_URL 访问,但是 Meteor 只使用 ROOT_URL 来引用它加载 meteor 应用程序所需的 Assets 。
我尝试在服务器启动、客户端启动函数和客户端启动函数之外使用 Meteor.absoluteUrl() 附加到地址。它在任何这些地方都没有影响。
例如。我有 nginx 在/site1 上监听 server_name: example.com 和一个反向代理到端口 3001 到我的 meteor 应用程序。
访问该站点时,它最初加载正常,但浏览器开发工具显示 Meteor 正在尝试在 https://example.com 中查找 javascript 和 css 文件。当它应该从 https://example.com/site1 的基本 url 查看时
Meteor.absoluteUrl("site1",{ssl:true}) 在 Meteor.startup() 中设置以尝试将其强制为正确的路径。正如你所看到的,我只附加到 ROOT_URL 没有前导/如 Meteor 文档中所述。
我正在使用meteor up 进行部署,mup.json 环境设置如下所示:
“环境”:{
"ROOT_URL": "https://example.com ",
“端口”:3001,
"MONGO_URL": "mongodb://user:password@localhost:27017/db"
}
非常感谢对此的任何澄清。
最佳答案
使用 apendua 建议的子域似乎是在 nginx 后面的同一服务器上容纳多个 Meteor 应用程序的最简单方法(如果您可以使用该选项)。
关于nginx - Nginx 背后的多个 Meteor 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170123/