我有一个带有图像的Rails 3.1应用程序:
app/assets/images/icons/button.png
似乎应该在此网址上提供图片:
assets/icons/button.png
但如果我转到此网址,我会收到404.为了解决这个问题,我创建了一个初始化程序,并将我的images/icons
子目录添加到资产路径中:
Rails.application.assets.append_path "app/assets/images/icons"
但是,这似乎不是推荐的方法来实现这一点。我知道JavaScript和CSS资产的require
和require_tree
指令,图像资产是否相同?其他人如何做到这一点?
答案 0 :(得分:2)
对于图像,只是有效。 Rails打包图像/树中的所有内容。我个人使用它们(实际代码):
CSS:
a#icon-followers{
background: url(<%= asset_data_uri "icons/followers.png" %>) center center no-repeat;
}
(asset_data_uri
实际上使用base64在CSS文件中内嵌图像,但在这种情况下这无关紧要)
无需自定义配置。预编译后,来自app/assets/icons/
的图片最终会显示在public/assets/icons/
。
您可以打开public/assets/manifest.yml
以查看Rails如何将路径转换为实际文件。