2

我开始使用asset_sync gem 以将Amazon S3 用作CDN 资产主机(我使用的是Heroku 和RoR)。我的所有资产都正确加载,除了我通过 Twitter Bootstrap 使用的图标(图标应该在的地方只有一个空白)。

我尝试使用 Heroku 的多资产预处理器支持:

应用程序/资产/样式表/custom.css.scss.erb

background-image: url(<%= asset_path "../img/glyphicons-halflings.png"%>);

我还尝试将 glyphicons-halflings.png 直接移动到图像文件夹中并在那里引用它:

应用程序/资产/样式表/custom.css.scss.erb

background-image: url(<%= asset_path "/assets/glyphicons-halflings.png"%>);

应用程序/资产/样式表/custom.css.scss

background-image: url("/assets/glyphicons-halflings.png");

但是,我还没有找到使它工作的方法。任何关于如何让 Twitter Bootstrap 图标成功地与 S3/Heroku 一起工作的建议将不胜感激。

编辑:我正在使用:gem 'bootstrap-sass', '~> 2.0.2'

4

5 回答 5

2

如果您正在使用gem 'bootstrap-sass',以下是对我有用的解决方案。

首先,从bootstrap 网站下载 bootstrap 。提取两个图标 .png 文件(glyphicons-halflings.png 和 glyphicons-halflings-white.png)并将它们复制到您的应用程序图像目录(app/images)中。

在您的 custom.css.scss 文件中(这可能是不同的名称,具体取决于您的应用程序)在样式表顶部(在导入引导程序之前)输入以下内容以覆盖图标图像路径:

 $iconSpritePath: url('/assets/glyphicons-halflings.png');
 $iconWhiteSpritePath: url('/assets/glyphicons-halflings-white.png');

 @import "bootstrap";
于 2012-09-24T02:35:07.067 回答
1

例如,使用 Rails 图像助手:

background-image: image-url("glyphicons-halflings.png");

您还可以在 Rails 控制台中检查您的搜索路径:

Rails.application.config.assets.paths

祝你好运!

于 2012-06-07T21:29:19.117 回答
0

对于不使用 bootstrap-sass gem 的任何人,我最终通过将默认 bootstrap css 文件扩展名更改为 scss 并编辑以下代码以使用 railsasset_url方法来工作。只需在代码中搜索 @font-face 并尝试一下。

@font-face {
 font-family: 'Glyphicons Halflings';

 src: asset_url('glyphicons-halflings-regular.eot');
 src: asset_url('glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), asset_url('glyphicons-halflings-regular.woff') format('woff'), asset_url('glyphicons-halflings-regular.ttf') format('truetype'), asset_url('glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}

提交并推送到heroku。为我工作。希望这可以帮助某人

于 2014-11-06T14:25:32.360 回答
0

您是否检查了实际使用的背景图像 URL?当我尝试在我的开发环境中测试 CDN 时,我有同样的行为。事实证明,在 application.css 中以某种方式使用了错误的存储桶

于 2012-06-29T07:57:45.320 回答
0

您是否设置了资产主机?

https://devcenter.heroku.com/articles/cdn-asset-host-rails31#configuration

于 2012-05-21T08:41:27.037 回答