1

アセットを本番環境にデプロイする前にプリコンパイルします。本番モードは問題なく動作しますが、開発中に application.js と application.css が冗長になります。すべての公開アセットを削除しようとしましたrake assets:cleanが、まだ機能しませんでした。

開発中のビュー

冗長な applicaiton.css と application.js

<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/css/custom-theme/jquery-ui-custom-lastest.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/animate.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/jquery_loadmask/jquery_loadmask.css?body=1" media="screen" rel="stylesheet" type="text/css" />
...
<script src="/assets/tags.js?body=1" type="text/javascript"></script>
<script src="/assets/wedapp.js?body=1" type="text/javascript"></script>
<script src="/assets/works.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

開発.rb

config.assets.compress = false
config.assets.debug = true

production.rb

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true  
config.assets.initialize_on_precompile = false  
config.assets.digest = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

ここで、development.rb の config.assets.debug で false を設定する必要がありますが、プリコンパイルする前にアセットをデバッグできません。これは本当に困ります。

助言がありますか?ありがとう。

解決

application.js ファイルを何でも変更してみてください。空白行を 1 行削除するとrake assets:clean RAILS_ENV=development、問題なく動作するようになりました。

4

1 に答える 1

0

ローカルでプリコンパイルしていて、通常の開発モードの機能をすべて保持したい場合は、両方を許可するように設定を調整できます。

development.rb に次の行を追加します。

config.assets.prefix = "/dev-assets"

これは、application.rb (通常は "/assets") で設定されているものを上書きします。

これも application.rb で必要になります。

config.assets.initialize_on_precompile = false

次に、コンパイルしたアセットをソース管理にコミットしてデプロイできます。後でクリーンアップすることを心配する必要はありません。

(このトピックに関する私の完全なブログ投稿を参照してください)

于 2012-05-25T04:43:54.893 に答える