这个问题与this SO问题有关,但是使用Meteor.absoluteUrl()的评论中推荐的解决方案似乎并没有按预期工作。我希望能够将多个流星应用程序部署到同一服务器,并使用nginx作为每个应用程序的反向代理。
因为每个应用程序都是隔离的,所以不会从ROOT_URL访问任何应用程序,但Meteor只使用ROOT_URL来引用它来加载流星应用程序所需的资产。
我尝试在服务器的启动,客户端的启动功能以及客户端启动功能之外使用Meteor.absoluteUrl()附加到地址。它在任何这些地方都没有影响。
例如。我有nginx在/ site1监听server_name:example.com和反向代理到端口3001到我的流星应用程序。
当访问该网站时,它最初加载正常,但浏览器开发工具显示Meteor正试图在https://example.com找到javascript和css文件,当它应该从https://example.com/site1的基本网址查找时/ p>
Meteor.absoluteUrl(" site1",{ssl:true})在Meteor.startup()中设置,尝试强制将其作为正确的路径。正如您所看到的,我只是附加到ROOT_URL而没有领先/如Meteor文档中所述。
我使用meteor up部署,以及mup.json环境设置的外观:
" env":{ " ROOT_URL":" https://example.com", " PORT":3001, " MONGO_URL":" mongodb:// user:password @ localhost:27017 / db" }
非常感谢任何有关此事的澄清。
答案 0 :(得分:1)
使用apendua建议的子域似乎是在nginx后面的同一服务器上容纳多个Meteor应用程序的最简单方法(如果您可以使用该选项)。
答案 1 :(得分:0)
流星应用下公共资产的根网址实际上是UnitySetAudioSessionActive(false)
。您的每个应用都有一个不同的应用基本目录。假设您的整体结构如下:
/public
然后,每个应用的公开资产将位于app1/ - nginx maps to https://example1.com/
client/
lib/
public/
server/
app2/ - nginx maps to https://example2.com/
client/
lib/
public/
server/
etc...
下,该Meteor.absoluteUrl()
将提供来自app/public
的文件。 Meteor.absoluteUrl()+"app1"
没有任何意义。