Rails - 资产管道 - 按目录标识资源

时间:2012-03-19 13:01:12

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

vendor/assets中说我有两个子目录/alpha/beta,每个子目录都有一个名为temp.jpg的文件。据我所知,为/assets/temp.jpg提出了一个GET请求,我很确定是否提供了alpha目录中的那个。但我怎样才能区分他们两个呢?我认为可以使用asset_url助手来完成,但我不太确定 - 如果有人可以建议这样做会很棒。

2 个答案:

答案 0 :(得分:1)

从手册:


您可以通过检查Rails控制台中的Rails.application.config.assets.paths来查看搜索路径。

可以在config / application.rb中将其他(完全限定的)路径添加到管道中。例如:

config.assets.paths << Rails.root.join("app", "assets", "flash")

Sprockets还将查看config.assets.paths中指定的路径,其中包括标准应用程序路径和Rails引擎添加的任何路径。

如果需要,也可以将图像组织到子目录中,并且可以通过在标记中指定目录的名称来访问它们:

<%= image_tag "icons/rails.png" %>

如果您正在使用资产管道,我不确定哪些图片将由未指定网址的链接提供,如果有的话。如果提供了一个,那么它将与Sprockets递归读取这些目录的顺序有关。如果它以alpha顺序读取它们,那么将提供“beta”图像。或者它只是随机的,我不确定Sprockets如何读取目录。

你最好在那里放一条明确的路径。如果您正在进行某种测试,例如您希望测试图像出现,我建议使用某种类型的参数化方法,以便您可以将“alpha”或“beta”传递到您的路径。

答案 1 :(得分:0)

检查http://guides.rubyonrails.org/asset_pipeline.html#asset-organization并尝试在Rails控制台中执行Rails.application.config.assets.paths,以调试资源加载路径。