【问题标题】:nginx/angular/node.js root URL with prerender.io带有 prerender.io 的 nginx/angular/node.js 根 URL
【发布时间】:2015-05-18 18:54:44
【问题描述】:

我们有一个使用节点、nginx 和prerender.io 的角度 SPA。我们的主页被设置为一个唯一的 url(即 www.foo.com/bar),并且在我们的路由中,这个主页捕获了所有没有特别路由的根相对 url 的默认重定向。

我们的问题是这样的: 根 URL www.foo.com 或 www.foo.com/ 回来时会为 google 和 Facebook 抓取一个空白页面。我们的索引是一个 ng-include 基本模板,所有页面都插入其中,因此我们的根 url 在没有任何真正的 html 正文内容的情况下返回是有道理的。索引中的主要 html:

<div class="st-content">
  <div ng-view="" class="main-content" id="mainView"></div>
  <div ng-include="'/views/footer.html'"></div>
</div> 

此外,我们尝试了其他解决方案,但没有积极的结果:

  • 索引头中的基本标记链接到“/”,它没有破坏任何东西……它也没有解决它
  • 307 重定向,无结果
  • nginx 配置看起来不错

注意:在写这个问题时,我想到将主路由更改为“/”:

.when('/', {
    templateUrl: '/views/foo-bar.html',
    title: ‘Foo Bar',
    pageDescription: ‘Lorem Ipsum Foo Bar'
})
    .
    .
    .
.otherwise({
    redirectTo: '/'
});

如果更改为这个,主页刮擦仍会显示为空白吗?这不是基本一样的 js 重定向问题,只是字符少了吗?

【问题讨论】:

  • 我不知道 nginx 是否配置为使用您的 index.html 响应 foo.com 或 www.foo.com 上的所有请求。是吗?对了,你用的是 HTML5 模式吗?
  • 你能把有问题的实际网址发给我吗?我很乐意对其进行测试,看看那里发生了什么,以确保一切设置正确。 todd@prerender.io
  • @DanM。 Nginx 配置为对 foo.com 的所有请求进行 301 重定向。然后将 www.foo.com 代理到 node.js。 strace-ing nginx 和 node 表明 nginx 正在适当地代理到节点服务器,此时我们可以看到节点的请求和响应。另外,我们使用的是 HTML5 模式。
  • 这听起来很对。当您说“空白”页面抓取时,您是指空的 还是没有动态内容的 Angular 索引?
  • @DanM。感谢cmets。 “空白”是指没有动态内容的 Angular 索引。我们正在索引中使用元片段……就预渲染而言,来自 Prerender 的 Todd 一直在向我们发送有关设置问题的电子邮件。解决此问题后,我将分享反馈

标签: javascript angularjs node.js nginx url-routing


【解决方案1】:

您需要设置window.prerenderReady 变量。因此,把它放在你的路由控制器中:

window.prerenderReady = false;

...这在你的控制器的成功回调函数中:

window.prerenderReady = true;

【讨论】:

    【解决方案2】:

    不久前我也遇到了同样的问题。

    您是否有 prerender.io 无法运行的代码片段?

    就我而言,我使用的是 platform.js (https://github.com/bestiejs/platform.js/),并在我的 appComponent.ts 中对“platform.name”进行了测试。这在 Prerender.io 中不存在,我得到一个空白页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多