开发者

Asset Subdirectories in Rails 3.1

开发者 https://www.devze.com 2023-04-09 23:00 出处:网络
I have a Rails 3.1 app with an image: app/assets/images/icons/button.png It seems like the image should be served at this URL:

I have a Rails 3.1 app with an image:

app/assets/images/icons/button.png

It seems like the image should be served at this URL:

assets/icons/button.png

but if I go to this URL I get a 404. To fix this I created an initializer and added my images/icons subdirectory to the asset path:

Rails.application.assets.append_path "app/assets/images/icons"

However, this does not seem like it can possibly be the recommended way to accomplish this. I'm aware of the require and require_tree directives for JavaSc开发者_开发技巧ript and CSS assets, is there an equivalent for image assets? How are other people doing this?


EDIT: As of Rails 3.2.rc1 this is now fixed! asset_path now generates proper paths when deploying to sub-uri!

For images it just works. Rails packages everything in images/ tree. I personally use them like this (actual code):

CSS:

a#icon-followers{
  background:  url(<%= asset_data_uri "icons/followers.png" %>) center center no-repeat;
}

(asset_data_uri actually makes the images inline in the CSS file using base64, but that's irrelevant in this case)

No custom configuration required. After precompiling, images from app/assets/icons/ end up in public/assets/icons/.

You can open public/assets/manifest.yml to see how Rails translates the paths to actual files.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号