PhantomJS更新资源文件路径

时间:2013-04-25 20:01:22

标签: javascript node.js phantomjs

我有一个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中的缓存,似乎没什么帮助。

非常感谢帮助。 感谢。

1 个答案:

答案 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