1

Rails 4.0beta1 アプリでブートストラップが提供するグリフィコンを使用しようとしています。開発中はすべて正常に動作しますが、本番環境では何もレンダリングされず、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.cssファイルと画像ファイルがあります。

EDIT: asset_pathヘルパーを使用するために.erb拡張子(bootstrap.css.erb)も追加しましたが、まだ開発中のアイコンしか表示されず、本番環境では表示されません。

誰にもアイデアはありますか?

4

2 に答える 2

2

奇妙なことに、background-image は本番環境では機能していないようでした。background: プロパティだけを使用して他の背景画像を読み込んでいたので、それを試してみたところ、(魔法のように) 本番環境で動作するようになりました:

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

ファイル名として bootstrap.css.erb を使用します。

background-image が開発では機能していたのに本番環境では機能していなかった理由については、まだ混乱しています...

于 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 に答える