ruby-on-rails-3.1 - Rails—— Assets 管道——按目录识别资源

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

说在 vendor/assets我有两个子目录,/alpha/beta , 每个都有一个名为 temp.jpg 的文件.据我了解,对 /assets/temp.jpg 发出了 GET 请求。 ,我很确定提供了来自 alpha 目录的那个。但是我如何区分这两者呢?我认为可以通过 asset_url 来完成 helper ,但我不太确定 - 如果有人能提出建议,那就太好了。

最佳答案

从手册:

您可以通过在 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" %>

如果您使用的是 Assets 管道,我不确定您的哪些图像会由未指定 url 的链接提供(如果有)。如果提供了一个,它将与 Sprockets 递归读取这些目录的顺序有关。如果它以 alpha 顺序读取它们,则将提供“beta”图像。否则它只是随机的,我不确定链轮如何读取目录。

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

关于ruby-on-rails-3.1 - Rails—— Assets 管道——按目录识别资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9770669/

相关文章:

javascript - 什么会导致 Rails 3.1 "= require jquery"停止工作?

ruby-on-rails - 设计 ensure_authentication_token 报告未定义的方法

ruby-on-rails - asset_host 和相关协议(protocol) URL 被更改为 http

ruby-on-rails - 通过 twitter-bootstrap-rails gem 升级到 bootstrap 2.0.1 后 Heroku 部署失败

css - Rails 3.1 Assets 管道指纹识别

ruby-on-rails-3 - 在 Rails 3 中创建 Controller /路由/ View 的最简单方法是什么?

ruby-on-rails - Rails选择标签选择值

ruby-on-rails - 是否可以将 best_in_place 与 twitter bootstrap 中的 typeahead 一起使用?

css - rails Assets 预编译 css 命令

ruby-on-rails - 如何防止 Rails 3.1 将静态 Assets 缓存到 Rails.cache?