【问题标题】:Use Sprockets Directive Inside Rails 3.2 CoffeeScript View在 Rails 3.2 CoffeeScript 视图中使用 Sprockets 指令
【发布时间】:2012-07-23 11:02:37
【问题描述】:

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

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

我基本上是在添加

#= require jquery

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

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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 sprockets


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 几乎我想做的事情是不可能的。 :) 这是有道理的。通过 ERB 和 Sprockets 传递所有视图也会很慢。感谢您的帮助。
    猜你喜欢
    • 2012-02-22
    • 2013-11-27
    • 1970-01-01
    • 2014-06-27
    • 2012-12-04
    • 2012-01-07
    • 2013-07-16
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多