prerender.io через промежуточное ПО prerender-node, черный список hashbang - PullRequest
0 голосов
/ 13 июня 2019

Я успешно использую сервис prerender.io через prerender-узел пакета промежуточного программного обеспечения prerender.io.

Я не заметил большого количества загрязнения в моих кэшированных результатах от ботов / зондов / перенаправлений.

Я пытаюсь реализовать черный список.

состояние prerender-node. Я могу сделать это с помощью чего-то похожего на:

if (env === 'production') {
  console.log('production environment, prerender.io enabled')
  const prerender = require('prerender-node').set('prerenderToken', '******')
  prerender.blacklisted(
    [
      '#!',
      '/#!/',
      '^/#!/.*'
    ]
  )
  app.use(prerender)
}

В этом примере я простопытаясь отфильтровать все URL-адреса hahsbang от кэширования.

т.е. https://example.com/#!/some/url

Но, похоже, это не работает.После развертывания этого кода и очистки кэшированных результатов.Кеш пополняется результатами, содержащими '#!'.

README узла Prerender (https://github.com/prerender/prerender-node) утверждает, что это должно быть простым регулярным выражением.
И шаблон регулярного выражения здесь проверяется: https://regex101.com/

1 Ответ

0 голосов
/ 13 июня 2019

после того, как связались с авторами-предысторами, они указали, что #! фактически перенаправляется как ?_escaped_fragment_=

поэтому:

const prerender = require('prerender-node').set('prerenderToken', '******')
prerender.blacklisted('_escaped_fragment_');
app.use(prerender)

... похоже работает как надо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...