2017-04-02 42 views
11

我工作的基礎Angular2 web應用程序。我使用Angular CLI生成應用程序,然後構建應用程序。我已在AWS S3 & Cloudfront上託管網站。當我使用網站管理員的「Google抓取方式」工具時,它僅顯示Loading...Angular2應用程序:抓取谷歌不會加載頁面內容

enter image description here

是不是能的Googlebot抓取我的網站?

+0

您的網站是否僅限於前臺?如果您沒有後端服務文件,則可能會遇到此問題。 –

+0

我已經使用Angular2作爲前端,並通過AWS cloudfront提供服務。後端是nodejs並託管在不同的子域上。 Angular2應用程序向nodejs應用程序發出API請求以呈現內容。 –

+0

您的前端是否由任何後端提供服務?或者它是一個光禿禿的index.html坐在你的域名? –

回答

10

也有類似的問題。我相信Google-Bot不支持現代JS。我只是通過激活看到angular.io推薦https://angular.io/docs/ts/latest/guide/browser-support.html並添加腳本頭所有墊片:

<script src=https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js</script> 

如果你真的需要所有的人我不知道,但我需要爲老年人IE支持反正。

如果這適用於所有Searchbots很清楚,如果你要支持他們,你可以嘗試https://prerender.io/。不過他們也只是能夠與墊片

希望這有助於呈現它。

+0

這最終是解決我的問題。我無法感謝你分享這個解決方案。我使用了你分享的cdn鏈接,但我很好奇你是如何「激活由angular.io推薦的所有墊片」的。你能解釋一下嗎? –

+1

所以我想這意味着cdn足以解決這個問題?那麼在你的angular.io項目中應該有一個名爲「polyfills.ts」的文件,其中所有來自https://angular.io/docs/ts/latest/guide/browser-support.html的墊片都被註釋掉了。我基本上刪除了所有與IE有關的類的評論。這將是所有core-js/es6/*,web-animations-js和classlist.js。希望這有助於 – Krosan

+0

我一直有同樣的問題,谷歌不能夠使用「抓取谷歌」呈現我的角4網站。無論我嘗試過什麼,它都返回空白。包括墊片在內的解決方案終於爲我解決了這個問題。考慮將此作爲接受的答案。 – brinch

2

由於您的前端沒有被任何服務器端語言提供服務,我推薦使用Angular2-Universal擔任初始加載一個靜態的HTML網站。

您可以檢出其quickstart指導,得到它的工作非常快。

+2

是不是應該的Googlebot呈現普通用戶所看到的瀏覽器是什麼? –

+0

@NileshG是的,一個普通的用戶可以看到一個初始的加載屏幕。 –

+0

是的,我寧願一個通用頁面。然而,事實並非如此。看到我上面的答案。 – Krosan