[英]nginx/angular/node.js root URL with prerender.io
我們有一個使用 node、nginx 和prerender.io的角度 SPA。 我們的主頁被設置為一個唯一的 url(即 www.foo.com/bar),並且在我們的路由中,這個主頁捕獲了所有沒有特別路由的相對於 root 的 url 的默認重定向。
我們的問題是:根 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>
此外,我們嘗試了其他解決方案,但沒有積極的結果:
注意:在寫這個問題時,我想到將家庭路由更改為“/”:
.when('/', {
templateUrl: '/views/foo-bar.html',
title: ‘Foo Bar',
pageDescription: ‘Lorem Ipsum Foo Bar'
})
.
.
.
.otherwise({
redirectTo: '/'
});
如果改成這個,首頁的刮是否仍然顯示為空白? 這不是基本上相同的js重定向問題,但字符更少嗎?
您需要設置window.prerenderReady
變量。 因此,把它放在你的路由控制器中:
window.prerenderReady = false;
...這在您的控制器的成功回調函數中:
window.prerenderReady = true;
不久前我遇到了同樣的問題。
您是否有 prerender.io 無法運行的代碼片段?
就我而言,我使用的是 platform.js ( https://github.com/bestiejs/platform.js/ ),並在我的 appComponent.ts 中進行了關於“platform.name”的測試。 這在 Prerender.io 中不存在,我得到了一個空白頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.