2012-02-17 11 views
2

私はRails 3.1プロジェクトを持っており、js、css、imageファイルの両方を持つjQueryプラグインを含めるようにしています。私はvendor/assets/chosen/{images,javascripts,stylesheets}とi index.cssとindex.jsをそれぞれのディレクトリに追加しました。ベンダー/ libディレクトリのRailsにjs/cssモジュールを組み込みます

その後、私はapplication.cssでプラグインを含めるようにしようとすると、これにapplication.js:

application.js:

//= require chosen 

application.css

/* 
    *= require chosen 
    */ 

しかし、私ページをロードすると、このエラーが表示されます。

couldn't find file 'chosen' 
    (in /..../app/assets/stylesheets/screen.css:8) 

this 2.1.2のページによると、少なくともlibディレクトリ(これは私が試した同じ結果)で実行できるはずです。誰にもヒントはありますか?

更新: 私はレールコンソールvendor/assets/chosenにassets.pathsを点検含まれています。

+0

です。選ばれた人にはそれがないのだろうか? – Frost

+0

...なぜ、既存のレールプラグインを代わりに使用するのはなぜですか? https://github.com/bseanvt/chosen_rails – Frost

答えて

0

プラグインのファイルに関連するパスを書き込もうとします。例えば、(それは私が私のプロジェクトでColorPickerの付属方法です):

//= require ../../../vendor/assets/javascripts/colorpicker #in application.js 
*= require ../../../vendor/assets/stylesheets/colorpicker #in application.css 

を、あなたのためにこのようなものになるだろう:

//= require ../../../vendor/assets/javascripts/chosen #in application.js 
*= require ../../../vendor/assets/stylesheets/chosen #application.css 

また、あなたのパスがRailsのために表示されていることを確認してください。 (config.assets.paths)

+0

相対パスはうまくいくかもしれませんが、深くネストされたファイルの場合は非常に醜いですが、レールガイドに従って動作するはずです。 申し訳ありませんが、私は既にレールコンソールとベンダー/資産/選択された資産の資産を検査していたことを私の記事で言及することを忘れています。 – Andreas

+0

外部のjavascriptとcssを 'vendor/javascripts'と' vendor/stylesheets'という名前の別々のフォルダに保存することをお勧めします。それらをth​​eeseフォルダの中に入れ、 'require'文をアプリケーション内に追加してみてください。(js/css)それは動作するはずです。 – bor1s

+0

これらは 'vendor/assets/chosen'の下に別個のフォルダの下にあります。私は 'vendor/assets/javascripts'と' vendor/assets/stylesheets'の下に置くことを考えましたが、他の人が書いた自己完結型モジュールなので、ファイルを何らかの方法でグループ化して明確にするそれらのファイルが相互に属していることを将来の保守者に知らせる。もう一つの選択肢は、 'vendor/assets/javascripts/chosen'のようなものの下に置くことですが、それでもかなりばらばらになってしまいます。 – Andreas

0
//= require chosen 

あなたはapplication.jsに追加した上記のコードは、資産・パスに「選択」という名前のファイルを探すためにレールを伝えます。あなたが "選択された"というファイルを持っていないので、レールは "ファイルが見つかりません"という文句を言っていますが正しいです。何が必要あなたはそれが `lib`フォルダ内の全パッケージは、それが動作するためにあなたは、プラグインのルートディレクトリにある` index.js`ファイルが必要となりますことを言及含ま言及バージョンrequire_tree

#application.js 
//= require_tree ../../../vendor/assets/chosen/javascripts 

#application.css 
*= require_tree ../../../vendor/assets/chosen/stylesheets 
関連する問題