簡體   English   中英

使用 Netlify 在 Gatsby 網站上使用 prerenderReady

[英]prerenderReady on a Gatsby website with Netlify

我們已經開始在 Netlify 服務的 Gatsby 網站上看到 504 錯誤。 問題來自激活 prerender.io,它經常在 10 秒后超時,導致谷歌機器人檢測到錯誤,現在我們的廣告被拒絕,因為我們的網站應該有錯誤(普通用戶不受影響)。

prerender.io 解釋說我們應該設置window.prerenderReady = true; 當頁面准備好時: https : //docs.prerender.io/article/11-best-practices

那么在您的 Gatsby 網站中,您會在哪里將此標志切換為 true? 什么是正確的地方?

我已經在 gatsby-ssr.js 中像這樣添加了prerenderReady = false

const onPreRenderHTML = ({ getHeadComponents, replaceHeadComponents }) => {
  const headComponents = getHeadComponents();

  const newHead = [
    <script key="prerender"> window.prerenderReady = false; </script>,
  ].concat(headComponents);

  replaceHeadComponents(newHead);
};

如果您不是動態呈現客戶端內容,則不需要使用 Prerender.io 之類的服務與 Gatsby。 您的頁面將在構建階段呈現在服務器端,並且無需任何額外工作即可供爬蟲使用。

在不太可能的情況下,您正在執行某種動態的客戶端渲染,您將是知道該內容何時准備好並在頁面上可用的最佳人選——很可能是在您更新狀態並且 React 已經擁有有機會重新渲染相關組件並更新 DOM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM