我通过 prerender.io 表示中间件包prerender-node成功地使用了 prerender.io 服务。
我没有注意到机器人/探测/重定向的缓存结果中有很多污染。
我正在尝试实施黑名单。
预渲染节点状态 我可以使用类似于以下内容来执行此操作:
if (env === 'production') {
console.log('production environment, prerender.io enabled')
const prerender = require('prerender-node').set('prerenderToken', '******')
prerender.blacklisted(
[
'#!',
'/#!/',
'^/#!/.*'
]
)
app.use(prerender)
}
在这个例子中,我只是试图从缓存中过滤掉所有 hahsbang URL。
即https://example.com/#!/some/url
但它似乎不起作用。部署此代码并清除缓存的结果后。缓存正在被包含"#!"的结果重新填充。
预渲染节点自述文件(https://github.com/prerender/prerender-node
)指出这应该是简单的正则表达式。
正则表达式模式在这里验证:https://regex101.com/
在与预渲染作者取得联系后,他们指出#!
实际上被重定向为?_escaped_fragment_=
因此:
const prerender = require('prerender-node').set('prerenderToken', '******')
prerender.blacklisted('_escaped_fragment_');
app.use(prerender)
。似乎正在按预期工作。