2

我有一个带有图像的 Rails 3.1 应用程序:

app/assets/images/icons/button.png

看起来图像应该在这个 URL 上提供:

assets/icons/button.png

但是如果我访问这个 URL,我会得到一个 404。为了解决这个问题,我创建了一个初始化程序并将我的images/icons子目录添加到资产路径中:

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

但是,这似乎不是实现此目的的推荐方法。我知道 JavaScript 和 CSS 资产的requireandrequire_tree指令,是否有图像资产的等价物?其他人如何做到这一点?

4

1 回答 1

2

编辑:从 Rails 3.2.rc1 开始,这已修复!现在,asset_path 在部署到 sub-uri 时会生成正确的路径!

对于图像,它只是工作。Rails 将所有内容打包在 images/ 树中。我个人像这样使用它们(实际代码):

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 如何将路径转换为实际文件。

于 2011-10-18T09:08:02.217 回答