11

レール初心者。\assests ディレクトリにあるこれら 2 つのファイルを理解しようとしています。

たとえば、application.js ファイルには次のような行があります。

//= require jquery
//= require jquery_ujs
//= require_tree .

require_tree .現在のディレクトリにすべてのJSファイルを追加するだけです。コンテキストからrequire jquery、jQuery ライブラリが追加されていることがわかります。しかし、これらの jQuery ライブラリはどこから取得するのでしょうか? アセットフォルダーに jquery.js ファイルが表示されません。それとも、アプリケーション全体に直接表示されますか?

同様に、Twitter ブートストラップ ( http://rubydoc.info/gems/bootstrap-sass-rails/2.3.2.0/frames ) をインストールするためのいくつかの指示に従っています。Gemfile に gem を追加した後//= require bootstrap、application.js ファイルと application.css に追加する必要があり@import 'bootstrap'、今では魔法のように機能します!!! どうして!?これらのファイルがどこにも見つかりません

ありがとう!

4

4 に答える 4

16

application.css および application.js は通常の css および js ファイルではありません (そうである可能性はありますが、目的が異なります)

どちらもjsのスプロケットとともにアセットパイプラインを伝えるマニフェストファイルです

したがって、マイケル・デュラントの回答で正しく指摘されているように、http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directivesが正しい場所になります

しかし、あなたの他の質問によると、パズルのかなり重要なピースが欠けているようです

Rails は主に gem で動作します。Gem は、バンドラーを介して Rails アプリに追加するように指示できる Ruby コードの断片です。

ブートストラップ gem のような gem を追加すると、それがインストールされます (デフォルトでは、Ruby がインストールされている gems ライブラリに - Ruby193\lib\ruby\gems\1.9.1\gems のようになります)。

そこに行ってブートストラップ gem を探すと、アプリに含まれている css および js ファイルと、マニフェスト ファイルに含まれている jquery および jquery_ujs が見つかります。

gem はレールと一緒にインストールされるため、レールはファイルの場所を気にしません (ファイルの場所を知っている限り)。

したがって、マニフェスト ファイルは Rails に「ねえ、これらのファイルをこの特定の順序で含めてください」と伝えます。

マニフェストにファイルを含めずに、css または js ファイルを作成するのと同等の gem をインストールし、それをフォルダーに配置し、それが存在することを Rails に通知しない場合。マニフェスト ファイルを介して Rails にその場所を伝えると、アセットのコンパイル プロセスに含まれ、定期的にアクセスできるようになります。

または、アセットにアセット パイプラインを使用する必要はありません。

通常のcssおよびjsファイルを含めることができます

 <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

ファイルをどこかにホストしてファイルを指すだけですが、アセットパイプラインには多くの利点があり、それを知ると本当に生活が楽になります

于 2013-05-30T03:54:32.833 に答える
3

これを理解するには、Web アセットのコンパイルと提供に使用されるSprocketsを確認する必要があります。

これらのファイルは、gem which. を使用した例を次に示しbootstrap-sassます。

~ gem which bootstrap-sass
/Users/andr/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bootstrap-sass-2.3.0.1/lib/bootstrap-sass.rb

の説明@import 'bootstrap': https://github.com/thomas-mcdonald/bootstrap-sass#cssおよびコメントに関する未解決の問題があります。

于 2013-05-30T03:37:25.647 に答える
0

システムにインストールされ、Gemfile を介してこのプロジェクトに含まれている宝石からそれらを取得すると思います。

http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directivesで学ぶことができます

于 2013-05-30T00:58:33.867 に答える