5

Rails でのこのコミットの後、サード パーティのアセットをapp/assetsフォルダーに配置するか、config.precompileそのようなアセットをすべて一覧表示することをお勧めします。

そのスレッドでユースケースを引用する

たとえば、CSS、フォント フェイス、画像スプライトを備えた jQuery プラグインを販売する必要がある場合は、.js と .css を vendor/assets/javascripts と vendor/assets/stylesheets に追加します。また、スプライトとフォントをそれぞれ vendor/assets/images と vendor/assets/fonts で販売します。ベンダー/アセット パス全体を追加するのはやり過ぎのように思えますが、各アセットを個別に手動で指定するのは面倒に思えます (ただし、これは設計によるものかもしれません)。

内部にサード パーティのアセットを追加するapp/assetsと、Rails 2のようなグローバル アセット フォルダーの問題が発生します。

何か不足していますか?Rails 4 でサード パーティのアセットを整理する方法を教えてください。

4

1 に答える 1

1

サードパーティは、手動で明示的に含める必要があります。これは、これらのライブラリには、ソース コード、readme ファイルなどの多くのオプション部分があるためです。画像やフォントなどの他のものが必要な場合は、このファイルを public フォルダーに追加するか、次の操作を実行できます。

config/application.rb

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif,
"fontawesome-webfont.ttf",
"fontawesome-webfont.eot",
"fontawesome-webfont.svg",
"fontawesome-webfont.woff")

config.assets.precompile << Proc.new do |path|
  if path =~ /\.(css|js)\z/
    full_path = Rails.application.assets.resolve(path).to_path
    app_assets_path = Rails.root.join('app', 'assets').to_path
    if full_path.starts_with? app_assets_path
      puts "including asset: " + full_path
      true
    else
      puts "excluding asset: " + full_path
      false
    end
  else
    false
  end
end

環境/生産.rb

config.serve_static_assets = true

次に実行しbundle exec rake assets:precompile RAILS_ENV=productionます。

于 2013-09-04T07:25:00.820 に答える