带有prerender.io的nginx/angular/node.js根URL

htx*_*-ui 12 javascript nginx url-routing node.js angularjs

我们有一个使用node,nginx和prerender.io的角度SPA .我们的主页设置为一个唯一的URL(即www.foo.com/bar),在我们的路由中,此主页捕获所有未经特别路由的根相对URL的默认重定向.

我们的问题是这样的:根网址www.foo.com或www.foo.com/带回谷歌和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> 
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

如果更改为此,主页刮仍然显示为空白?这与js重定向问题基本相同,但字符较少?

Kar*_*yal 1

您需要设置该window.prerenderReady变量。因此,将其放入您的路由控制器中:

window.prerenderReady = false;
Run Code Online (Sandbox Code Playgroud)

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

window.prerenderReady = true;