prerender.io не работает с expressjs и angularjs - PullRequest
0 голосов
/ 27 февраля 2019

Я настроил сервер с Express.js:

const env = process.env.ENV || 'PROD';
const port = process.env.PORT || 8080;
const express = require('express');
const app = express();

if(env === 'PROD') {
    app.all('*', function(req, res, next) {
        var protocol = req.headers['x-forwarded-proto'];
        if(protocol && protocol === 'http') {
            res.redirect(301, 'https://' + req.headers.host + req.url);
        }
        return next();
    });
}

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

app.use(express.static(__dirname + '/app/'));

app.get('*', function(req, res){
    res.sendFile(__dirname + '/app/index.html');
});

app.listen(port);
console.log("App started on port "+port);

В приложении angularjs установите конфигурацию:

config(['$locationProvider', '$routeProvider', function ($locationProvider, $routeProvider) {
    $locationProvider.html5Mode(true);
}])

В index.html:

<meta name="fragment" content="!">

Как сказано в документации: https://prerender.io/documentation/test-it

Я делаю:

http://mydomainm/user/1?_escaped_fragment_=

Но моя страница не кэширована.enter image description here

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Похоже, что промежуточное ПО работает нормально, но вы отправляете нам URL-адрес http, поэтому мы возвращаем 301. Можете ли вы изменить ваше промежуточное ПО следующим образом:

app.use(require('prerender-node').set('prerenderToken', 'mytoken').set('protocol', 'https'));

Это должно исправить этоперенаправить проблему и заставить все работать правильно.

0 голосов
/ 28 февраля 2019

Похоже, он должен работать правильно.Можете ли вы отправить электронное письмо на support@prerender.io, чтобы мы могли проверить вашу статистику сканирования и провести тестирование с нашей стороны?Спасибо!

...