5

ここで回答された同様の質問があることは認識していますが、それらの回答の多くは宝石を使用しているか、Bootstrap のファイルを直接変更しています。これらは有効な構成ですが、この分野 (スプロケット、Rails パイプライン、フロントエンド開発全般) に関する知識セットを増やし、これが機能しない理由、根本的な問題を理解したいと考えています。

Ruby 2.0.0-p353、Rails 4.0.2、Bootstrap 3.0.3、Nginx 1.4.4、パッセンジャー 4.0.33

彼らのサイトから最新の Bootstrap zip をダウンロードし、ここにあるすべての操作を実行してそれらのファイルをアプリケーションに直接インクルードし、グリフィコンを開発環境で期待どおりに表示することができました。ただし、本番環境にデプロイすると、グリフィコンが Chrome で四角形として表示されます。glyphicons ファイルの個々のファイル拡張子をプロダクション プリコンパイルに追加し、それらが public/assets フォルダーに表示されることを確認しました。js/css ファイルと glyphicon ファイルの唯一の違いは、glyphicon ファイルと一緒に gzip されたファイルがないことです。

production.rb:

config.assets.precompile = ['*.js', '*.css', '*.eot', '*.svg', '*.ttf', '*.woff']

Rails が開発と本番で異なる方法でアセットをロードすることは知っていますが、本番環境でグリフィコン アセットを認識または理解できないのはなぜですか? 現在の構成でこれを修正する方法はありますか? または、このエラーを修正できるように、これらのアセットを含める方法を変更する必要がありますか?

また、開発と本番の両方で、グリフィコンを使用するページをレンダリングするたびに次のエラーが発生しますが、アイコンは引き続き表示されます。これは関連していますか?

  • ActionController::RoutingError ([GET] "/fonts/glyphicons-halflings-regular.woff" に一致するルートはありません)
  • ActionController::RoutingError ([GET] "/fonts/glyphicons-halflings-regular.ttf" に一致するルートはありません)
  • ActionController::RoutingError ([GET] "/fonts/glyphicons-halflings-regular.svg" に一致するルートはありません)
4

2 に答える 2

0
  1. config/application.rb、 の後に次を追加しますclass Application < Rails::Application。次のようになります。

    class Application < Rails::Application
        config.assets.paths << "#{Rails}/vendor/assets/fonts"
    
  2. ターミナルで、次を実行してアセットをコンパイルします。

    rake assets:precompile RAILS_ENV=development
    
  3. リソースの場所を からにbootstrap.css変更して、ファイルを編集します。次のようになります。@font-face../fonts//assets/

    @font-face {
        font-family: 'Glyphicons Halflings';
        src: url('/assets/glyphicons-halflings-regular.eot');
        src: url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/glyphicons-halflings-regular.woff') format('woff'), url('/assets/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
    }
    

あなたは終わった。で再起動するだけrails sで、グリフィコンが表示されます。

于 2014-06-21T08:01:09.520 に答える