2016-11-02 6 views
0

私はphantomJS 2.1.0を実行しています。私はそれを使ってangularJSサイトのページのpdfsを生成しています。 un-minifiedコードを使用した開発サーバーでは、すべてが完璧に機能します。私の生産サーバでは、モジュールがロードされていないというエラーが表示されます。私の開発サーバー上で縮小されたコードを使用すると、エラーもメッセージも表示されません。phantomJSは、ページを正しくロードしたと報告しますが、ページ上のjavascriptは実行されません。また、phantomJSがページのすべての適切なリソースを取得していることもわかります。PhantomJSがエラーなしで失敗します

答えて

0

他の誰かがこの非常にイライラした問題に遭遇した場合、私は最終的にそのバグがハイチャートコードであることを発見しました。私のチャートの設定を定義するとき、同じプロパティを2回定義しました。例えば。 (私は伝説を2回定義しました):

$('#data-chart').highcharts({ 
       title: { 
        style: { 
         display: 'none' 
        } 
       }, 
       credits: false, //do not show 'Highcharts.com' on chart 
       colors: ['#264653', '#2a9d8f', '#e9c46a', '#f4a261', '#e76f51', '#67a9e5', '#f8ed08', '#7b69a9','#91e8e1'], 
       legend: { 
        enabled: false 
       }, 
       yAxis: [ 
        {title: { text: null } }, 
        { 
         opposite: true,   //show secondary y-axis on right side of graph 
         title: { text: null } //Hide y-axis title 
        } 
       ], 
       plotOptions: { 
        column: { 
         pointPadding: 0, 
         borderWidth: 0, 
         groupPadding: 0.15 
        }, 
        series: { 
         stacking: 'normal' 
        } 
       }, 
       tooltip: { 
        shared: true 
       }, 
       legend: { 
        layout: 'horizontal', 
        align: 'center', 
        verticalAlign: 'top', 
        borderWidth: 0, 
        symbolWidth: 16, 
        symbolPadding: 10, 
        itemStyle: { 
         color: '#a8aab7', 
         fontFamily: 'Roboto', 
         fontWeight: 'bold', 
         fontSize: '14px' 
        } 

       } 
      }); 

2番目の定義を削除すると、すべてが修正されました。私は問題がブラウザが2つのプロパティを無視することによって処理できることが疑わしいですが、phantomJSはそれを黙って失敗することはできません。私はまだコードを細かくすることでそれが壊れたのはまだ分かりませんが、私のすべてのコントローラがあなたのページに関係なくインポートされているので、un-minifiedで動作しましたが、現在使用されているコントローラのコードのみを解析するangularJS最適化しかし、それを細かくすると、すべてが解析されます。あるいは、小型化の間に、それは二重の特性に何かをして、phantomJSのそのコードの解析を破った。

+0

ファンタムに問題がある場合は、メッセージを表示せずにファントムが壊れてしまうケースが多いため、これに加えて、ノードなどでコードを実行することをお勧めします。 –

+0

@MaxUppenkampコメントを拡大できましたか?私は、ノードなどを介してコードを実行することによってあなたが意味することを理解していません。 'node 'を実行するだけですか? –

関連する問題