Reactjs SSR一个具有动态元数据的应用程序外壳+;预渲染

Reactjs SSR一个具有动态元数据的应用程序外壳+;预渲染,reactjs,progressive-web-apps,server-side-rendering,Reactjs,Progressive Web Apps,Server Side Rendering,当我的SEO元数据是每个路由的动态时,SSR我的PWA的应用程序外壳的策略是什么?例如,在/home路线上,我只想要一个标题: <title>Shop - Home</title> 问题是,如果我将其包含到我的SSRd应用程序外壳中,我的服务人员将缓存该特定页面的应用程序外壳版本。我还希望根据用户当前所在的路由更改元数据。为此,我使用React头盔。我们还使用Prerender在我们的SEO应用程序上缓存每个页面,这些页面将读取我们页面的SSR元数据。一般来说,您可以认

当我的SEO元数据是每个路由的动态时,SSR我的PWA的应用程序外壳的策略是什么?例如,在
/home
路线上,我只想要一个标题:

<title>Shop - Home</title>

问题是,如果我将其包含到我的SSRd应用程序外壳中,我的服务人员将缓存该特定页面的应用程序外壳版本。我还希望根据用户当前所在的路由更改元数据。为此,我使用React头盔。我们还使用Prerender在我们的SEO应用程序上缓存每个页面,这些页面将读取我们页面的SSR元数据。

一般来说,您可以认为服务器端呈现独立于是否使用应用程序外壳

SSR负责客户机的响应,这些客户机至少没有安装您的服务人员。当然,爬虫程序和机器人也属于这一类。您可以继续在每个SSR响应中包含特定于页面的元数据


如果您遵循应用程序外壳模型,那么您的服务人员将通过返回通用应用程序外壳HTML来处理所有(或至少大部分)导航。这不会有任何特定于页面的元数据,但您始终可以通过客户端JavaScript调整标题和
的其他部分。只有“真实”用户,而不是爬虫程序和机器人程序,才应该安装您的service worker,这样您就不必担心依赖客户端JavaScript来填充元数据。

如果对爬虫程序/机器人程序和“真实”程序的初始响应都不正确,那么service worker什么时候才有机会缓存应用程序外壳HTML用户是完全呈现的HTML页面吗?我们是否只缓存构成应用程序外壳
main.css
jquery.js
等的资产?您的服务人员控制缓存的内容以及后续导航的操作。您可以传入任意URL列表,以便service worker在安装过程中进行缓存,这与浏览器呈现的HTML无关。
<title>Shop - Search</title>
<meta name="description" content="Search results" />