image_url缺少资产前缀

时间:2013-02-05 20:13:44

标签: ruby-on-rails-3.1 ruby-on-rails-3.2 asset-pipeline sass refinerycms

在RefineryCMS gem的scss中,他们将图像定位为背景,如下所示:

body {
  min-height: 100%;
  margin: 0;
  padding: 0;
  font-size: 10px;
  font-family: Verdana;
  line-height: 1.5em;
  background: #303030 image_url('refinery/page_bg.png') repeat;
}

编译时,它将是这样的:

background: #303030 image_url('refinery/page_bg.png') repeat;

但是,page_bg.png位于assets文件夹中:assets/refinery/page_bg.png

如果我尝试www.mydomain.com/assets/refinery/page_bg.png我可以看到图片 因此,编译的scss中的image_url('refinery/page_bg.png')缺少前缀assets/

我该如何解决这个问题?

我尝试在名为public的{​​{1}}文件夹中创建一个文件夹并将refinery放入其中,但是,我没有工作,并且www.mydomain.com/refinery/page_bg .png不会显示图像。

有解决方案吗?任何人都可以帮忙吗?修复资产前缀当然更好,但是,我不介意直接使用公共文件夹..

1 个答案:

答案 0 :(得分:0)

asset-pipeline config将一些目录定义为asset目录。这意味着对资产目录中内容的引用前面没有assets。例如,在大多数默认配置中,资产目录为:app/assetslib/assetsvendor/assets。您可以将.png背景图片放在名称为image的每个子文件夹中,并按照以下方式引用它:background: url(your_image.png)

编辑:根据this discussion,如果部署到Hiroku,资产预编译过程中应该包含sass-rails