我的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