【发布时间】:2013-09-09 14:42:38
【问题描述】:
首先让我说这是 Rails 最糟糕的部分。来自 .NET 背景,像编写任何标准 HTML 页面一样编写 css 非常容易,但是,不,不是在 Rails 中,除非你做所有这些特别的废话,否则它会爆炸。
我的问题本质上是这样的:当我将 .erb 添加到 application.css 的末尾并像这样编写 background-image 属性时,为什么我只能通过资产管道加载我的图像:
background-image: url(<%= asset_path 'image.png' %>);
我不明白为什么这些不起作用(我尝试了 100 种不同的方法):
background-image: url('/assets/image.png');
background-image: url('assets/image.png');
background-image: image-url('image.png');
background-image: image-url('assets/image.png');
background-image: url(image.png);
仅供参考,这是我的生产环境,所有内容都是预编译的。通过这种方式链接,一切都在开发中:
background-image url('/assets/image.png');
但是当我切换到生产和预编译时,任何图像或字体文件都必须转换为 ASSET_PATH 处理方法,否则图像不会显示...常见问题?
【问题讨论】:
-
我相信指纹识别与它有关。您是否查看了生成的 CSS 文件以及 URL 变成了什么? Rails 资产管道做得很好,请查看它以获得更好的解释 -> guides.rubyonrails.org/asset_pipeline.html
-
您最终找到了这个问题的答案吗?我有同样的问题stackoverflow.com/questions/22998738
-
不,我只是将css中使用的图像扔到“Public/images”文件夹中,然后您可以按照正常方式进行CSS,如“url(images/image .png)",因为图像不是通过管道发送的。
标签: css ruby-on-rails ruby asset-pipeline precompile