【问题标题】:How do I redirect to different port on same host in Meteor?如何在 Meteor 中重定向到同一主机上的不同端口?
【发布时间】:2016-03-03 12:51:32
【问题描述】:

我正在将在端口 2368 上运行的 Ghost blog 集成到在端口 3000 上运行的 Meteor 应用程序中。Ghost 是一个单独的实例。

在下面的模板文件中,Meteor 应用程序中的超链接指向单独的实例 Ghost 博客。

<template name="header">
    <header class="navbar">
        <div class="navbar-inner">
           <div class="top-nav">
                <div>
                    <a href="{{pathFor 'home'}}">Home</a> -                         
                    <a href="http://localhost:2368">Blog</a> - 
                </div>                                        
           </div>
        </div>
    </header>
</template>

它可以在我的本地机器上运行,这意味着它可以正确地重定向到博客系统。但是,当我部署到生产环境时它不起作用,因为它仍然指向本地主机。

无论是在本地还是在生产环境中,检测主机名的最佳方法是什么?有什么办法让它通过iron-router工作吗?

【问题讨论】:

    标签: javascript meteor spacebars ghost-blog


    【解决方案1】:

    您可以为此使用Meteor.absoluteUrl([path], [options]) (http://docs.meteor.com/#meteor_absoluteurl)。

    例如,HTML:

    <a href="{{rooturl}}:2368">Blog</a>
    

    和 JS:

    Template.header.rooturl = Meteor.absoluteUrl("");
    

    【讨论】:

    • 我得到了 localhost:3000/:2368。我是否需要手动关闭“:3000 /”,例如:Template.header.rooturl = Meteor.absoluteUrl("").split(':')[1];?或者有没有简单的方法?他们应该支持仅获取主机名功能。第二个问题是,即使在生产环境中,我总是得到 localhost 而不是我的真实域。
    • 在生产中,根据您的部署方式,您需要在启动流星或您的包之前手动设置ROOT_URL 环境变量,以便设置正确的 URL。至于更改absoluteUrl 的结果,是的,我没有意识到包含端口,但这是有道理的。您最好使用 url 包,只需在获得的 url 上调用 url.parse,然后从返回的对象中获取协议和主机名。
    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 2015-03-15
    • 2020-01-20
    • 2016-09-30
    • 1970-01-01
    • 2015-07-24
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多