如何解决使用 Netlify 在 Gatsby 网站上使用 prerenderReady
我们开始在 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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。