在客户端,我可以window.location.hostname
用来获取主机名.如何在服务器上获得相同的内容?我需要这个后面的Apache代理工作,遗憾的是Meteor.absoluteUrl()
给了我localhost:3000
.我也希望它适用于不同的域,我想要一个Meteor应用程序,为不同的域提供不同的结果.
这个问题有点相关:在node.js Express中获取当前请求的主机名
ims*_*vko 31
Meteor.absoluteUrl()
鉴于你的ROOT_URL
env变量设置正确.
请参阅以下文档:http://docs.meteor.com/#meteor_absoluteurl.
Meteor不知道它所在的代理的面向外部的地址,并且访问该代理的(虚拟)域必须转发到Meteor应用程序,以便它能够满足您的要求.我认为目前不支持此功能.
根据这个,您现在可以通过访问以下内容获取Host
标头Meteor.publish()
和Meteor.methods()
调用:
this.connection.httpHeaders.host
Run Code Online (Sandbox Code Playgroud)
在应用程序的其他地方,可能很难确定Host
用于连接的标头.
如果您需要服务器的主机名,/etc/hostname
例如:
随着陨石:
$ mrt add npm
在您的服务器代码中:
os = Npm.require('os')
hostname = os.hostname()
Run Code Online (Sandbox Code Playgroud)
这与传入请求中提供的Host头没有关联.
用以下评论中的chmac的一些单词更新答案