prerender.io 通过 prerender-node 中间件,黑名单 hashbang
prerender.io via prerender-node middleware, blacklist hashbang
我通过 prerender.io expresss 中间件包 prerender-node 成功使用了 prerender.io 服务。
我没有注意到来自 bots/probes/redirects 的缓存结果有很多污染。
我正在尝试实施黑名单。
prerender-node state 我可以用类似的东西来做到这一点:
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
但它似乎不起作用。部署此代码并清除缓存结果后。缓存正在重新填充包含“#!”的结果。
Prerender-node README (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)
...似乎正在按预期工作。
我通过 prerender.io expresss 中间件包 prerender-node 成功使用了 prerender.io 服务。
我没有注意到来自 bots/probes/redirects 的缓存结果有很多污染。
我正在尝试实施黑名单。
prerender-node state 我可以用类似的东西来做到这一点:
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
但它似乎不起作用。部署此代码并清除缓存结果后。缓存正在重新填充包含“#!”的结果。
Prerender-node README (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)
...似乎正在按预期工作。