2011-03-10 21 views
2

My Railsアプリケーションはかなり進歩しており、含まれているJSファイル(プラグイン+ GritterのAloha Editor、1MB以上のJSで複数のファイルを作ります)正しく。私は細かいRailsの統合のためにJammitを決めました。説明のためにJammit圧縮は圧縮モードではなく、devモードで動作します。JS

package_assets:   always 
javascript_compressor: closure 
compressor_options: 
    compilation_level: ADVANCED_OPTIMIZATIONS 

javascripts: 
    admin: 
    - public/aloha/aloha.js 
    - public/aloha/plugins/com.gentics.aloha.plugins.Format/plugin.js 
    - public/aloha/plugins/com.gentics.aloha.plugins.Table/plugin.js 
    - public/aloha/plugins/com.gentics.aloha.plugins.List/plugin.js 
    - public/aloha/plugins/com.gentics.aloha.plugins.Link/plugin.js 
    - public/javascripts/*.js 
    - public/javascripts/gritter/*.js 

:ここに私のconfig/assets.ymlあるaloha.jsが延長のjQuery 1.4.2 LIB、およびファイル内の/ JavaScriptの/ の.jsおよび/グリッターがされる/の.jsはほとんどありこれに依存しています(jQuery)。 私はビューコードに

<%= include_javascripts :admin %> 

とタグを含めています。

devモード(assets.ymlにpackage_assets:onが設定されている)に切り替えると、JammitはJSファイルだけを残して、すべてを1つずつ埋め込みます。私のアプリはうまくいきます。

しかし、生産モード(env =:production、またはassets.ymlにpackage_assets:alwaysがある)では、Jammitは正しく埋め込まれた約700kBの圧縮されたJSファイルを作成します(これは太ったモンスターです)。 JSエラー "jQueryが定義されていません"ページが読み込まれます。私の最初の推測は、コンパイル中にJSファイルの順序が変更されることです。

もう1つ:コンプレッサーをデフォルト(yui)にしておくと、ロード時にJSエラーがさらに悪化します。

誰かが私を助けてくれますか?

答えて

2

"高度な最適化"を行うコンパイラでは、アロハエディタを圧縮するのに多くの問題がありました。アロハコアはうまくコンパイルされますが、ExtJSの依存関係はコンパイルに失敗します。

aloha.jsが既にコンパイルされているため、コンパイルをスキップして、コンパイルし直す代わりに結果ファイルに連結できるかどうかを確認してください。

コンパイラでwhitespace_onlyオプションだけを有効にできるかどうか、またはbasic_optimisationsを試してみてください。これは、それがコンパイルプロセスの問題であるかどうかを示します。

0

ファイルの順序が問題になる可能性があります。私は各ファイルを明示的に指定することをお勧めします(つまり、/*.jsを実行しないでください)。

これがうまくいくと、注文を必要としないjavascriptファイルをサブフォルダに移動し、そのサブフォルダの/*.jsを呼び出すことができます。

関連する問題