我有一个角度应用程序托管在火基上,并试图使用prerender.io来提高其搜索引擎优化。
下面是我使用firebase函数部署的prerender.io中间件的一个非常简单的设置
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 header检查爬虫是否完成了请求。
我使用User-Agent=googlebot向我的应用程序发出http GET请求,但得到一个错误
getaddrinfo ENOTFOUND service.prerender.io service.prerender.io:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)如果我删除头文件,一切正常,但没有预渲染发生。
有没有人遇到过同样的问题?
耽误您时间,实在对不起。
发布于 2018-11-06 22:28:19
这看起来像是它试图在DNS中查找https://service.prerender.io,但失败了。看起来Firebase在默认情况下可能不允许DNS查找?Firebase reverse dns lookup ENOTFOUND error node.js dns
https://stackoverflow.com/questions/53159938
复制相似问题