prerender.io 通过预渲染节点中间件,黑名单哈希邦



我通过 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)

。似乎正在按预期工作。

最新更新