0

CoffeeScript の使用を開始できるように、所有している古い Rails アプリでアセット パイプラインをセットアップしようとしています。Ruby 1.9.3-p327 と Rails 3.2.13 を使用しています。以前は、すべての JS、CSS、および画像をpublic/フォルダーに隠していました。これは私がこれまでに行ったことです - >

  1. それらをすべて app/assets に移動し、JS と CSS call の両方のマニフェスト ファイルを追加しました//= require_tree .

  2. 以下のgemを追加

    group :assets do
      gem 'coffee-rails'
      gem 'uglifier'
      gem 'sass-rails'
      gem 'therubyracer'
    end
    
  3. javascript_include_tagsを除くすべてを削除しました= javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js'

  4. config/application.rb私のファイルに以下を追加しました

    # Enforce whitelist mode for mass assignment.
    # This will create an empty whitelist of attributes available for mass-assignment for all models
    # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
    # parameters by using an attr_accessible or attr_protected declaration.
    config.active_record.whitelist_attributes = true
    
    # Enable the asset pipeline
    config.assets.enabled = true
    
    # Version of your assets, change this if you want to expire all your assets
    config.assets.version = '1.0'
    
  5. config/environments/development.rb ファイル セット内

    # Do not compress assets
    config.assets.compress = false
    
    # Expands the lines which load the assets
    config.assets.debug = true
    
  6. config/environments/production.rb に追加しました

    # Compress JavaScripts and CSS
    config.assets.compress = true
    
    # Choose the compressors to use
    # config.assets.js_compressor  = :uglifier
    # config.assets.css_compressor = :yui
    
    # Don't fallback to assets pipeline if a precompiled asset is missed
    config.assets.compile = false
    
    # Generate digests for assets URLs.
    config.assets.digest = true
    
    # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
    # config.assets.precompile += %w( search.js )
    

アセット パイプラインのセクションを読み直して、何か間違っているかどうかを確認しました。しかし、これまでのところ、機能しapp/assetsている唯一のアセットjquery.min.jsから引き出されているアセットはinclude_tagありません.

bundle exec rake assets:clean、およびを試しましたがbundle exec rake assets:precompile、どちらも問題なく動作します。アセットの宝石を追加してからバンドルし、毎回 pow を再起動しました。

これがすべて間違っているのか、それともステップを逃したのかわかりませんか? 以前にこれを経験した人は誰でも、ヒントや手がかりをいただければ幸いです。

4

1 に答える 1

4

あなたはすべてのjavascript_include_tag声明を削除したと言いました。マニフェストapp/assets/javascripts/application.jsに andという名前を付けたと仮定するとapp/assets/stylesheets/application.css、それらをレイアウトに含める必要があります。

<%= stylesheet_link_tag    "application", :media => "all" %>
<%= javascript_include_tag "application" %>

そうしないと、Rails はマニフェスト ファイルを読み込めません。

rake assets:precompileまた、開発では使用しないでください。その場合、JS/CSS ファイルを変更するたびに、変更が表示される前にアセットを再コンパイルする必要があります。

于 2013-08-08T13:00:05.850 に答える