0

開発環境で UglifyJs2 と UglifyCss の両方を有効にするために、これらの手順に従いました (まず、この問題で運用サーバーをダウンさせる危険を冒すことはできません!)

私の下で、config_dev.yml次のように構成しました(パラメーターだけで始めましたが、bin何か他の問題が発生した場合に備えて、追加の構成を追加しました。)

assetic:
    use_controller: %use_assetic_controller%
    filters:
        uglifycss:
            bin: "%kernel.root_dir%/Resources/node_modules/.bin/uglifycss"
            node: /usr/local/bin/node
            apply_to: '\.css$'
        uglifyjs2:
            bin: "%kernel.root_dir%/Resources/node_modules/.bin/uglifyjs"
            node: /usr/local/bin/node
            apply_to: '\.js$'

そして私のbase.html.twigファイルで:

  {% javascripts  'bundles/fosjsrouting/js/router.js'
                  'bundles/legalcheck/js/angular.min.js'
                  'bundles/legalcheck/js/plugins/*'
                  'bundles/legalcheck/js/app.js'
                  'bundles/legalcheck/js/controllers/*'
                  filter='uglifyjs2'
                %}
      <script type="text/javascript" src="{{ asset_url }}"></script>
  {% endjavascripts %}

  {% stylesheets 'bundles/legalcheck/css/*' filter='cssrewrite' filter='uglifycss' %}
  <link rel="stylesheet" href="{{ asset_url }}" />
  {% endstylesheets %}

を実行するphp app/console assetic:dump --env=prod --verboseと、すべてのファイルがエラーなしで生成されます。この時点でさらに縮小されています。

しかし、ブラウザーでアプリをロードすると、すべての CSS および JS アセットが 500 エラーを返します。

500 エラー

以下は、各 JavaScript ファイルが返すものと、各 CSS ファイルが返すものです。UglifyJS および/または UglifyCSS の両方、または Node 自体からシグナル "5" エラーが発生しています。間違ったものがどこかに送られているのではないかと思います。

何か案は?開発環境を実現するために、ローカルの MAMP サーバーを実行しています。また、トラブルシューティングの手順として、パスの問題などの明らかな問題を回避するために、パスの「Git Repos」からスペースを取り除いたことにも注意してください。

アップデート

同じ設定config_dev.ymlを自分で実行しconfig_prod.ymlてみましたが、すべてが本番側で完全に機能することがわかりました。縮小されたアセットをロードしようとするapp_dev.phpと問題が発生するようです...しかし、まだ何がわかりません! 縮小化を開発環境でテストできればいいのですが、そのため、この問題と解決のための対話を促進するために、質問を開いたままにしています。

4

1 に答える 1

1

assetic のデバッグ モード :)

ファイルをダンプしています--prod(デフォルトではデバッグモードが無効になっています)...

...そして、dev後で環境内でそれらにアクセスしようとします。

デバッグ モードが有効になっている場合、アセット コレクションは次のような複数のファイルに分割されます。

<hash>_partX_<filename>.js

これはchrome devtoolsが表示するものであり、オンザフライでダンプしているときに問題が発生すると500エラーが発生します。

呼び出したコマンドを使用してこれらのファイルをデバッグ用にダンプしなかったため、( がない限りuse_controller: true) その場でダンプされることもありません。

あなたが持っている場合use_controller: true... フィルター実行のゼロ以外の終了コードは500エラーになります。それはあなたが経験するものです。


解決:

debugこのような単一のアセット コレクションのモードを無効にするか...

{% javascripts  '...'
    filter='uglifyjs2'
    debug=false
 %}

... または追加 ...

assetic:
  debug: false

config_dev.ymlに追加して問題を解決してください。

最後にapp/console assetic:dump、正しい環境フラグを指定してアセットをダンプします。

于 2014-07-09T23:13:56.983 に答える