不,没有办法,您需要在 Chrome 中对其进行硬编码并按照您的说明进行重建。
您可能已经知道,Chrome explicitly states 他们目前限制了prerendered 的页面数量:
Chrome 只会在每个 Chrome 实例中最多预呈现一个 URL(而不是每个标签一个)。在某些情况下,此限制将来可能会发生变化。
他们的supported API's 或experimental API's 中没有任何内容可以让您修改它。 chrome://settings/ 或 chrome://flags/ 或当前 Chrome 中的其他任何地方都没有允许您更改此设置的切换。但是,您可以使用Page Visibility API 来确定是否正在预呈现页面。
除了您使用<link rel="prerender" href="http://example.org/index.html"> 指定的页面上的一个资源之外,您还可以考虑使用prefetching 资源。
预取的问题是它只会加载指定 URL 的顶级资源。因此,如果您尝试预取其他页面,如下所示:
<link rel="prefetch" href="http://example.org/index.html">
...那么只会预取index.html 资源,而不是文档中包含的所有 CSS 和 JavaScript 链接。一种方法是为页面中包含的所有资源写出link 标签,但这可能会变得混乱且难以维护。
另一种方法是等待当前页面完成加载,然后使用隐藏在页面外的JavaScript to create an iframe,针对您要为其预取所有资产的 URL。然后浏览器会加载该 URL 的所有内容,当用户访问该页面时,这些内容会在用户的缓存中。
还有一个Chrome extension 结合了这两种方法,方法是搜索定义prefetch 的link 标签,然后创建隐藏的iframe,从而下载和缓存资产。
如果目标是围绕浏览您的网站的客户端性能进行优化,则可能还有其他选择,例如创建一个使用 Single Page Application (SPA) 开发风格的 Web 应用程序,以减少加载和执行 JS 和 CSS 的次数。如果您是 Google 的粉丝,那么您可以查看他们的称为 AngularJs 的 SPA 构建框架。