1

我使用的文件在app/views/api/index.js.coffeerespond_to請求的js格式爲/api/:api_key。我可以看到CoffeeScript正確地編譯爲JS,並且也可以在CoffeeScript文件中使用ERB。使用Sprockets指令內部導軌3.2 CoffeeScript視圖

但是,現在我試圖通過一個Sprockets指令要求一個外部文件進入這個CoffeeScript文件,它似乎不起作用。

我基本上將

#= require jquery 

到的CoffeeScript文件的第一行。我期望將jQuery庫導入並添加到我生成的JavaScript文件中,但不會顯示出來。就好像指令被忽略了一樣。

是否可以在CoffeeScript視圖內使用Sprockets指令?

回答

0

這裏有幾個相互競爭的問題:

  1. ,因爲如何在資產管道工程,如果你讓你的CoffeeScript是一個資產(例如,在公共/資產/ JavaScript的),你再培訓局會在資產編譯時進行評估,而不是在您的控制器呈現javascript時。這意味着使用像image_path這樣的指令是很好的,但是你不能在erb中使用像current_user這樣的東西。

  2. Sprockets指令僅適用於作爲資產管道的一部分進行編譯的文件。在一個視圖中,您可以使用javascript_tag來引用一個javascript程序集,但因爲它沒有被編譯,所以在這裏需要一些東西是沒有意義的。這實際上可以導致更好的設計,將庫代碼放入公共/資產(或lib /資產)中,然後將自定義代碼放入視圖中。

另外,我要指出的是,如果你打算使用require鏈輪指令,不要忘了require self某處有加載該文件的內容爲好。

+0

幾乎我想做的事情是不可能的。 :)這是有道理的原因。通過ERB和Sprockets傳遞所有視圖的速度相當緩慢。謝謝你的幫助。 – Sandro 2012-07-31 15:50:03