【问题标题】:image_url missing assets prefiximage_url 缺少资产前缀
【发布时间】:2013-02-05 20:13:44
【问题描述】:

在 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 文件夹中创建一个名为 refinery 的文件夹并将 page_bg.png 放入其中,但是我没有工作,并且 www.mydomain.com/refinery/page_bg.png 不会显示图片。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 您的意思是如果我从 image_url 中删除了 'refinery/',它将从 assets 文件夹中提供吗?如果是这样,那么我该如何覆盖供应商 scss 以进行此更改?
    • 不,/refineryassets 的子目录。如果图片是(例如)在app/assets/refinery/images,你可以url('refinery/images/yourimg.png)`。
    • 我明白了,但是问题是通过使用heroku设置预编译scss文件来解决的,如果你有兴趣,请看这里:groups.google.com/forum/?fromgroups=#!topic/refinery-cms/…
    • 有趣,我觉得很有价值,谢谢。您是否允许将其包含在答案中?
    • 几乎疯了。这就是答案,优秀的源链接!
    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2016-08-05
    • 1970-01-01
    • 2018-10-25
    • 2011-11-12
    相关资源
    最近更新 更多