2

過去3日間、これに苦労して無駄になりました。

私のGemfileには次のものがあります:

gem 'sass-rails', '3.1.5' # there is a problem with 3.1.6 and we need to downgrade until they update it.
gem "bootstrap-sass"

Bootstrap CSS は問題なく動作しますが、開発モードまたは運用モードでは画像が表示されません。

development.log には、GET エラーについて次のように記載されています。

GET http://localhost:3000/railsAdminApi/assets/glyphicons-halflings.png 404 (Not Found)

ご覧のとおり、プロジェクト名をパスの一部として使用してはいけません。

私のbootstrap_and_overrides.css.scssファイルにはこれがあります:

$iconSpritePath: asset-url("glyphicons-halflings.png", image) !default;
$iconWhiteSpritePath: asset-url('glyphicons-halflings-white.png', image);

このgithub ディスカッションasset-urlの代わりに使用することに注意してください。image-path

いずれにせよ、この変数に何を入れても (または に戻してもimage-path) ルートは常に同じままで、何を試しても変更できません。

gem ファイルの vendor/assets/stylesheets/bootstrap/_sprites.css.scss ファイルを直接編集して (これはもちろん恐ろしいことです) 'assets/'、Sass 変数の代わりに挿入すると、ブラウザはアイコンが見つからないというエラーを表示しなくなります。それでも画像は表示されません。

それはよりトリッキーになります:

Sass 変数を _sprites.css.scss に戻し、プリコンパイルすると、ローカル マシンでプロダクション モードのイメージが表示されます (ただし、開発モードではありません)。ただし、リモート サーバーでは、プロダクション モードで画像を表示する組み合わせはありません。

そのため、ブートストラップに関連するすべてのものをアンインストールするためのヘルプまたはおそらく方法を探しています (後でローカル マシンでアンインストールした他のブートストラップ gem をいじったため、クリーンアップがオプションになる可能性があります)。

ありがとう。

編集

簡単に言うと、gem を再び機能させるには、RVM を削除して rbenv をインストールする必要がありました。今回はtwitter-bootstrap-railsどちらの方がうまく機能し、javascript エラーが少なくなりましたが、グリフと fontawesome フォントの両方で画像に同じ問題が残っています。

変数に何を入れても(今回はそれらを尊重しています)、常にプロジェクトパスrailsAdminApiをパスに追加しているようです。

必死にroutes.rbなって、探しているパスにアクセスできるように、ファイルにパスを追加できると思いました。

get 'railsAdminApi' => 'public/'

もちろん、Rails はパブリック コントローラーがないと文句を言っていますが、私はコントローラーなしで静的ルートを作成する方法を知りません。ソフトリンクを作成しようとしましたが、うまくいきませんでした。

4

1 に答える 1

0

コントローラアクションの1つにアセットプレフィックスを記録します。

Rails.logger.info [:asset_prefix, YourAppName::Application.instance.config.assets.prefix].inspect

次に、アクションにアクセスします。

パスが「/assets」以外のものであることがわかった場合は、何かがそのパスを変更したに違いありません。ブートストラップがそれを行うとは思わない。それはおそらく別のものです。

簡単な修正として、これをconfig/application.rbに追加します。

config.assets.prefix = '/assets'

わかりやすくするために、これはの近くに追加する必要がありconfig.assets.enabledます。

これは、 http: //guides.rubyonrails.org/asset_pipeline.htmlのセクション5.4(アセットパスの変更)に記載されています。

アプリ/アセット内の他のファイルは正常に検出されていますか?/railsAdminApiブートストラップアイコンの前にだけ追加されていたら、私は驚きます。ログを調べて、ログを取得するために使用されているURLを確認します(またはfirebug Netパネルを使用します)。

于 2012-05-07T17:07:24.337 に答える