【问题标题】:Using Asset Pipeline in Rails View在 Rails 视图中使用资产管道
【发布时间】:2014-08-27 13:34:00
【问题描述】:

我有一个 Coffeescript 视图,比如 widget.js.coffee 需要包含 jQuery,因为我不能确定 jQuery 是否可用。这个想法是让其他人使用JS文件,例如

<script src="http://my.rails.app/40/widget.js"></script>

我的应用已经通过资产管道拥有 jQuery,所以我想做与 application.coffee 清单等效的操作,在这里我可以简单地说:

#= require jquery

到目前为止,看起来我可以通过 so 输出 jQuery:

<%= Rails.application.assets["jquery"].source %>

但这似乎破坏了 Coffeescript 代码(看起来 jQuery 源代码中有反引号)。

我不确定最好的方法。对最好的方法有什么想法吗?

【问题讨论】:

  • 您还有更多上下文吗?例如,如果您在不知道已加载 JQuery 的情况下加载它 - 我认为是在您加载 ajax 响应或其他内容之后?
  • 我在 CoffeScript 中看到过使用 $ = require('jquery')... 也许你应该解决这个问题...

标签: ruby-on-rails coffeescript asset-pipeline


【解决方案1】:
  1. 在资产管道中创建一个 .coffee 文件,其中包含您需要的所有库。我们称它为“widget.js.coffee”,它存在于 assets/javascripts 中
  2. 在您的控制器中,像这样拉取生成的源代码:

    code = Rails.application.assets['widget'].source

  3. 压缩它

    @js_libraries = Uglifier.compile code

  4. 在您的视图中使用它。如果您的视图是咖啡脚本,请确保它包含在反引号中

    &lt;%= raw @js_libraries %&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多