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

时间:2013-09-04 06:44:58

标签: ruby-on-rails-4

在Rails中this commit之后,建议将第三方资产放入app/assets文件夹,或config.precompile列出所有此类资产。

在该线程上引用用例

  

例如,如果我需要提供一个也有CSS的jQuery插件,那么   字体表面和图像精灵,我将.js和.css添加到   供应商/资产/ javascripts和供应商/资产/样式表。我也会   供应商供应商/资产/图像和中的精灵和字体   供应商/资产/字体。添加整个供应商/资产   路径似乎有点过分,但是单独手动指定每个资产   看似乏味(虽然可能是设计)。

app/assets中添加第三方资产会导致全局资产文件夹的Rails 2 类似问题。

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

1 个答案:

答案 0 :(得分:1)

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

<强>配置/ 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

<强>环境/ production.rb

config.serve_static_assets = true

然后运行bundle exec rake assets:precompile RAILS_ENV=production