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 つの問題があります。
- 画像の生成がまだ完了していなくても、Webshot はコールバックを返します。
- 生成されたイメージは、フォントを正しくレンダリングしません。(ここではGoogleフォントを使用しています)。
問題を修正するものはありますか?これはAngularjsアプリのスクリーンショットを撮る方法に関連していることがわかりますか?
または、node-webshot と phantomjs に代わる良い方法はありますか?