Prerender.io с приложениемactjs / express, не распознающим маркер Prerender - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь настроить prerender с моим приложением. Я использую реагировать на стороне клиента, а express на стороне сервера. Я настроил учетную запись в IO prerender и установил промежуточное ПО prerender-node, как рекомендовано сайтом. Вот как выглядит мой сервер:

const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const SocketManager = require('./sockets/SocketManager')
const path = require('path');
const users = require("./routes/api/users");
const queries = require('./routes/api/queries');
const forumActions = require('./routes/api/forumActions');

// Routes
app.use("/api/users", users);
app.use("/api/queries", queries);
app.use("/api/forumActions", forumActions);

// Serve static assets if in production
if (process.env.NODE_ENV === 'production') {
  // Set static folder
  app.use(express.static('client/build'));

  app.get('/', (req, res) => {
    res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
  });
}

app.use(require('prerender-node').set('prerenderToken', 'xxxTOKEN_CODExxx'));

const port = process.env.PORT || 80;
const server = app.listen(port, () => console.log(`Server running on port ${port} !`));

const io = require('socket.io')(server);
io.on('connection', SocketManager);

На стороне клиента я использую реагирующий шлем для динамического рендеринга метатегов (заголовок, описание и т. Д. c.) На основе маршрута. В идеале я хотел бы иметь возможность обмениваться сообщениями в социальных сетях и иметь отображение метаданных (что, на мой взгляд, можно сделать с помощью предварительной визуализации страниц, специально предназначенных для веб-сканеров).

Я настроил предварительную визуализацию. я добавил свой URL на кэшированные страницы, но по какой-то причине я получаю сообщение «Мы еще не видели запрос с вашим токеном Prerender». Я размещаю на сайте heroku и попытался добавить токен с помощью интерфейса командной строки heroku, который до сих пор не устранил проблему.

Есть ли пропущенный шаг или я настроил его неправильно? Спасибо!

1 Ответ

1 голос
/ 31 марта 2020

Похоже, что вам может понадобиться переместить промежуточное программное обеспечение prerender-узла выше в ваш файл, чтобы оно выполнялось сразу после ваших маршрутов, но до того, как индексный файл будет возвращен.

Затем вы можете сменить пользователя Агент в вашем браузере для Googlebot и посетите ваш URL. Если промежуточное ПО настроено правильно, вы увидите предварительно обработанный ответ и запрос в статистике сканирования Prerender.io.

...