1

我正在使用 js 格式的文件app/views/api/index.js.coffeerespond_to请求/api/:api_key. 我可以看到 CoffeeScript 可以正确编译为 JS,并且也可以在 CoffeeScript 文件中使用 ERB。

但是,现在我试图通过 Sprockets 指令将外部文件添加到此 CoffeeScript 文件中,但它似乎不起作用。

我基本上是在添加

#= require jquery

到 CoffeeScript 文件的第一行。我希望 jQuery 库被导入并添加到我生成的 JavaScript 文件中,但它没有显示出来。就好像该指令被忽略了。

是否可以在 CoffeeScript 视图中使用 Sprockets 指令?

4

1 回答 1

0

这里有几个相互竞争的问题:

  1. 由于资产管道的工作方式,如果您让咖啡脚本成为资产(例如,在 public/assets/javascript 中),您的 ERb 将在资产编译时进行评估,而不是在控制器呈现 javascript 时进行评估。这意味着可以使用类似 的指令image_path,但不能current_user在 erb 内部使用类似的东西。

  2. Sprockets 指令仅适用于作为资产管道的一部分编译的文件。在一个视图中,您可以使用javascript_tag来引用一个 javascript 程序集,但是在这里需要一些东西是没有意义的,因为它没有被编译。这实际上可以带来更好的设计,将库代码放入 public/assets(或 lib/assets),然后将自定义代码放入视图。

另外,我应该注意,如果您要使用requiresprockets 指令,请不要忘记require self在其中的某个地方也加载该文件的内容。

于 2012-07-25T07:14:33.110 回答