1

phantomjsに依存するnode-weshotを使用して、自分の Web サイトのイメージ スナップショットを作成しようとしています。ローカルマシンでは期待どおりに動作しますが、ライブサーバーにデプロイすると. 画像が生成されたことを示すコールバックを起動し続けるだけです。しかし、その下では、プロセスはまだ画像を生成しています。(つまり) ファイル名は生成されますが、サイズも内容もありません。10 分後、ファイルに画像データが入力されます。ただし、フォントは正しくレンダリングされませんでした。

スクリーンショットは次のとおりです。フォントなし

そして、私のウェブショットコードをここに示します:

var options = {
  screenSize: {
   width: 403,
   height: 403
  },
  shotSize: {
    width: 403,
   height: 403
  },
  script: function() {
    $(function() {
      window.callPhantom('takeShot');
    });
  },
  takeShotOnCallback: true
};

webshot(baseUrl+frame_url, path, options, function(err) {
    if(err){
      return res.json({ok:false, error:err.error || err});
    }
    return res.json({image:baseUrl+img,ok:true});
  });

したがって、技術的には、ここに 2 つの問題があります。

  1. 画像の生成がまだ完了していなくても、Webshot はコールバックを返します。
  2. 生成されたイメージは、フォントを正しくレンダリングしません。(ここではGoogleフォントを使用しています)。

問題を修正するものはありますか?これはAngularjsアプリのスクリーンショットを撮る方法に関連していることがわかりますか?

または、node-webshot と phantomjs に代わる良い方法はありますか?

4

1 に答える 1