3

Rails アプリの DIR 構造を説明しているサイトをオンラインでいくつか見つけましたが、主に次のようないくつかについてはまだ明確ではありません。

/vendor
/lib
/public

何をどこに行けばいいですか?ベストプラクティスを知りたい。たとえば、jQuery プラグインがありますが、/vendor に配置する必要がありますか? /公衆?/lib? オンラインのさまざまなサイトから3つすべてを読みました。

ありがとう

4

2 に答える 2

5

ベンダーはサードパーティのコード/ライブラリであるため、jQuery プラグインに適した場所です。

Public は静的アセット用であり、アセット パイプラインにあることから何のメリットも得られないものです。

Lib は通常、アプリに固有ではないコードを含めるために使用されます。つまり、複数のアプリで使用するものです。ActiveModel に基づかないドメイン クラスなど、lib にドメイン ロジックを配置する傾向があります。Gary Bernhardt (https://www.destroyallsoftware.com/) はこれの支持者です。

于 2012-07-22T20:12:05.093 に答える
4

通常、/public のコンテンツは Web サーバー (nginx、apache など) によってレールからの介入なしに直接提供されるため、従来はすべての静的アセット (画像、スタイルシート、JavaScript など) がここに置かれていました。そこに JavaScript を入れることはできますが、少し時代遅れです。

Rails 3.1 ではアセット パイプラインが導入され、このすべてが変更されました。app/assets、lib/assets、および vendor/assets 内のアセットはすべて、アセット パイプラインによってサーバーを起動します。通常、アプリケーション固有のアセットは app/assets に入り、サードパーティ ライブラリ (クエリ プラグインなど) は vendor/assets に入ります。独自の jquery プラグイン セットを開発している場合は、それらを lib/assets に配置できます。アセットはどこに置いても機能しますが、それは組織の問題です。

Gem は独自のアセット フォルダーを持つこともできます。たとえば、jquery-rails gem は jquery をバンドルし、実際にアプリにコピーしなくてもアプリが jquery を提供できるようにします。これは、ベンダー/アセットに物を入れるよりもさらに優れていると思います。

于 2012-07-22T20:17:05.510 に答える