Rails 4 - 供应商资产在哪里?

Aks*_*wat 5 ruby-on-rails-4

在Rails中进行此提交后,建议将第三方资产放入app/assets文件夹中或config.precompile列出所有此类资产.

在该线程上引用用例

例如,如果我需要提供一个jQuery插件,它也有CSS,字体和图像精灵,我会将.js和.css添加到vendor/assets/javascripts和vendor/assets/stylesheets.我还将分别在供应商/资产/图像和供应商/资产/字体中提供精灵和字体.添加整个供应商/资产路径似乎有点过分,但是单独手动指定每个资产似乎很乏味(尽管可能是设计).

在里面添加第三方资产app/assets将导致Rails 2 类似全局资产文件夹的问题.

我错过了什么吗?什么是Rails 4组织第三方资产的方式.

haw*_*awk 1

应手动明确包含第三方。这是因为这些库有许多可选部分,例如源代码、自述文件等。如果您需要其他内容(例如图像或字体),您可以将此文件添加到公共文件夹中或执行以下操作:

配置/应用程序.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
Run Code Online (Sandbox Code Playgroud)

环境/生产.rb

config.serve_static_assets = true
Run Code Online (Sandbox Code Playgroud)

然后跑bundle exec rake assets:precompile RAILS_ENV=production