rails 4资产管道图像子目录

时间:2014-02-01 19:36:56

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline

我知道这可能是一个简单的问题,但我很难过。

我正在处理的应用程序包含这样的资产:

app
--assets
----fonts
----images
----javascripts

我喜欢有效地组织资产以避免混乱,所以我试图像这样分解图像:

app
--assets
----fonts
----images
------icons
------views
--------home
--------admin

理想情况下,我想引用像image.png这样的图像,而不必在views/home/image.png之类的资产前面添加文件夹路径,我认为这可能是必要的,尽管不是开箱即用的设置

2 个答案:

答案 0 :(得分:29)

如果您将app/assets/images下方的所有路径手动添加到application.rb中的Rails资产路径,则可以:

Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
  config.assets.paths << path
end

答案 1 :(得分:23)

在Rails 4+中,资产路径的任何更改都应该在:

配置/初始化/ assets.rb

要将app / assets / images中的所有子目录添加到路径,请添加以下内容:

Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
  Rails.application.config.assets.paths << path
end

然后,您可以使用以下内容验证rails控制台中的资产路径:

Rails.application.config.assets.paths.each do |p|
  puts p
end