1

app/views/api/index.js.coffeerespond_toのリクエストの js 形式のファイルを使用しています/api/:api_key。CoffeeScript が JS に正しくコンパイルされ、CoffeeScript ファイル内でも ERB を使用できることがわかります。

ただし、Sprockets ディレクティブを使用して、この CoffeeScript ファイルに外部ファイルを要求しようとしていますが、機能していないようです。

私は基本的に追加しています

#= require jquery

CoffeeScriptファイルの最初の行に。jQuery ライブラリがインポートされ、生成された JavaScript ファイルに追加されることを期待していますが、表示されません。あたかも指令が無視されているかのようです。

CoffeeScript ビュー内で Sprockets ディレクティブを使用することは可能ですか?

4

1 に答える 1

0

ここにはいくつかの競合する問題があります。

  1. アセット パイプラインの仕組みにより、coffeescript をアセット (たとえば、public/assets/javascript 内) にすると、コントローラーによって JavaScript がレンダリングされるときではなく、アセットのコンパイル時に ERb が評価されます。これは、 のようなディレクティブを使用しても問題ないことを意味しますが、 erb 内でimage_pathは使用できません。current_user

  2. Sprockets ディレクティブは、アセット パイプラインの一部としてコンパイルされるファイル専用です。ビューではjavascript_tag、javascript アセンブリを参照するために使用できますが、コンパイルされていないため、ここで何かを要求しても意味がありません。これにより、ライブラリ コードを public/assets (または lib/assets) に配置し、次にカスタム コードをビューに配置するという、より優れた設計につながる可能性があります。

また、sprockets ディレクティブを使用する場合は、そのファイルの内容もロードすることをrequire忘れないでください。require self

于 2012-07-25T07:14:33.110 に答える