#javascript #angularjs #phantomjs
#javascript #angularjs #phantomjs
Вопрос:
У меня есть приложение AngularJS, которое работает на http://localhost:8001
Я использую этот скрипт PhantomJS для запуска и возврата отображаемого HTML:
"use strict";
var port, server, service,
system = require('system'),
page = require('webpage').create();
server = require('webserver').create();
service = server.listen(port, function (request, response) {
console.log(JSON.stringify(request, null, 4));
page.open('http://localhost:8001' request.url, function () {
response.write(page.content);
var fs = require('fs');
fs.write('a.txt', page.content, 'w'); //save the output HTML to file
});
});
if (service) {
console.log('Web server is running');
} else {
console.log('Error !');
phantom.exit();
}
}
итак, PhantomJS запускается http://localhost:8002
и перенаправляет на http://localhost:8001
когда я попал в
curl "http://localhost:8002/"
Я вижу HTML, но я все еще вижу {{}}
теги AngularJS вместо желаемых значений. Более того, когда я открываю http://localhost:8002/
в браузере, я получаю бесконечный цикл. Что происходит?
Редактировать
Поскольку мое приложение Angular имеет начальную анимацию и отправляет некоторые запросы на серверную часть, мне пришлось сказать PhantomJS, что он должен подождать http://charles .lescampeurs.org/2013/07/02/phantomjs-wait-for-it
Комментарии:
1. Это не может быть ваш фактический код.
port
никогда не устанавливается.2. Какую версию PhantomJS вы используете? Пожалуйста, зарегистрируйтесь на
onConsoleMessage
,onError
,onResourceError
,onResourceTimeout
события ( пример ). Возможно, есть ошибки.