我有一个nodejs + phantomjs设置。我正在尝试生成html并将其提供给机器人用于seo。该应用程序目前有效,但我想提高性能。由于加载了很多js文件,我试图更新phantomjs中的资源路径,以便将资源指向本地,而不是在浏览器中发出http请求以提高性能。
我正在做这样的事情。
page.onResourceRequested = function (requestData, request) {
if(requestData.url.indexOf('.js') > 0) {
requestData.url = requestData.url.replace("http://foo.com/","/path to local directory of the resources");
}
但这似乎不起作用。在网络选项卡中,我仍然可以看到从外部源获取的资源。
有没有替代方法?我还看了phantomjs中的缓存,似乎没什么帮助。
非常感谢帮助。 感谢。
答案 0 :(得分:3)
在查看文档后找到解决方案。
<强> onResourceRequested 强>
请求资源。回调的第一个参数是 requestData元数据对象。第二个参数是networkRequest 对象本身。
示例:
page.onResourceRequested = function(requestData, networkRequest) {
console.log('Request (#' + requestData.id + '): ' + JSON.stringify(requestData));
};
abort():中止当前网络请求。中止当前 网络请求将调用(onResourceError)回调。
changeUrl(url):更改网络请求的当前网址。
request.changeUrl(url)可用于更改网址。
http://phantomjs.org/api/webpage/handler/on-resource-requested.html