2

我正在学习 Gatsby 的工作原理,并且有一个有 2 个页面的网站,两个页面都有彼此的超链接。

由于 gatsby 使用 javascript 包将网站编译为静态页面,我希望 html 链接单击事件触发对服务器的页面请求以加载second页面。但是,我没有看到这样的要求。该网站的行为类似于从页面加载的单页应用程序first。链接点击不会引起对该页面的网络页面请求second。同时,我可以看到服务器second正确响应了对页面的请求。在这种情况下,second页面被加载并且通过链接点击导航到first页面也不会引起 HTTP 请求。

  • 是设计使然吗?您能否澄清编译后的网站中实际发生的情况?

  • 如果这种单页行为是设计使然,我想知道它对搜索引擎爬虫的负面影响有多大?我认为单页应用程序对于 google bot 等的索引不是很好。

  • 另外,如果我的页面很大(比如说从降价书籍或类似书籍中呈现)怎么办?我希望单页应用程序不会非常适合一次加载所有内容。在这种情况下,盖茨比施了什么魔法?

4

1 回答 1

4

是的,盖茨比是单页网站,是的,它也是一个多页网站。Gatsby 将单个页面预渲染为 html 文件,并将相应的反应代码编译成包。

在冷启动时,任何给定的页面都像任何其他静态页面一样加载到浏览器中,快速且对 SEO 友好。加载静态页面后,将引导反应代码并有效地运行节目('a la' 单页应用程序样式)。很聪明吧?但是,只从服务器获取需要的 js 包(有时为了速度也预先获取)。

Gatsby 实际上只不过是一个智能的服务器渲染的 html react 应用程序,它可以理解内容类型。

于 2017-10-11T09:30:56.663 回答