5

在Rails 中提交后,建议将 3rd 方资产放在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

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

配置/应用程序.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 回答