Тестирование промежуточного программного обеспечения prerender.io для угловых приложений, размещенных на firebase - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть приложение Angular, размещенное на Firebase и пытающееся использовать prerender.io для улучшения SEO.

Вот довольно простая настройка промежуточного программного обеспечения prerender.io, которое я развертываю с использованием функций firebase

import * as functions from 'firebase-functions';
import * as express from 'express';

const app = express();
app.use(require('prerender-node').set('prerenderToken', 'myToken'));
app.get('**', function (req, res) {
 res.sendFile('dist/browser/index.html', {'root': '.'});
});
export const myApp = functions.https.onRequest(app);

prerender-node промежуточное программное обеспечение отображает страницы только для запросов сканеров. К сожалению, в первые дни ни один сканер не отправил запрос на мое приложение, поэтому я хочу проверить его самостоятельно.

Вот как я пытался смоделировать вызов на гусеничном шасси. Я посмотрел на prerender-node исходный код и увидел, что есть метод shouldShowPrerenderedPage, который проверяет user-agent HTTP-заголовок, выполняется ли запрос сканером.

Я отправил http-запрос GET на мое приложение с User-Agent=googlebot и получил ошибку

getaddrinfo ENOTFOUND service.prerender.io service.prerender.io:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

Если я удаляю заголовок, все работает нормально, но никакой предварительной визуализации не происходит.

Кто-нибудь испытывал такую ​​же проблему?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 06 ноября 2018

Похоже, что он пытался найти DNS для https://service.prerender.io, и это не удалось. Похоже, что Firebase может не разрешать поиск DNS по умолчанию? Firebase обратный просмотр DNS ENOTFOUND ошибка node.js днс

...