1

我正在尝试在我的 rails 4.0beta1 应用程序中使用 bootstrap 提供的字形图标。在开发中一切正常,但在生产中没有任何渲染,并且在 heroku 日志中我收到以下错误:

ActionController::RoutingError No Route Matches [GET] "/assets/glyphicons-halflings.png"

这就是我在 boostrap.css 中调用图像文件的方式:

[class^="icon-"],
[class*=" icon-"] {
 background-image: url("/assets/glyphicons-halflings.png");
}

这就是我在视图中呈现它的方式:

<i class="icon-user"></i>

当我运行 rake assets:precompile 并使用 rails s -e production 启动生产服务器时,我再也看不到图标了。我不确定为什么会这样。我没有使用任何与 bootstrap 相关的 gem,我只有简单的 bootstrap.css 文件和 assets/images 下的图像文件。

编辑: 我还添加了一个 .erb 扩展名(bootstrap.css.erb)来使用asset_path 助手,但我仍然只看到开发中的图标,而不是生产中的图标。

有人有什么想法吗?

4

2 回答 2

2

好吧,奇怪的是,背景图像似乎在生产中不起作用。我只使用 background: 属性加载其他背景图像,所以我尝试了它,现在它(神奇地)在生产中工作:

background: url(<%= asset_path 'glyphicons-halflings.png' %>);

以 bootstrap.css.erb 作为文件名。

仍然对为什么背景图像在开发中而不是在生产中工作感到困惑......

于 2013-06-21T06:35:52.367 回答
0

试试这个简单的方法:

background-image: url('gliphicons-halflings.png')

编辑:glyphicons.scc.scss.erb

@font-face {
font-family: 'Glyphicons';
src: url('<%= asset_path('glyphicons-regular.eot')%>');
src: url('<%= asset_path('glyphicons-regular.eot?#iefix')%>') format('embedded-opentype'), url('<%= asset_path('glyphicons-regular.woff')%>') format('woff'), url('<%= asset_path('glyphicons-regular.ttf')%>') format('truetype'), url('<%= asset_path('glyphicons-regular.svg#glyphicons_halflingsregular')%>') format('svg');
font-weight: normal;
font-style: normal;
}

[class^="glyphicons-"]:before {
display: inline-block;
font-family: 'Glyphicons';
font-style: normal;
font-weight: normal;
text-decoration: inherit;
*display: inline;
*zoom: 1;

}

于 2013-06-21T06:25:16.227 回答