Rails生产资产压缩和集成

时间:2015-07-09 11:08:48

标签: javascript ruby-on-rails coffeescript

快速示例,

让我们说,我有这个js文件,test.coffee

alert 'test!'

我的目标是,

我不希望在每个页面中加载此代码

所以我手动包括我想要的地方,

<%= javascript_include_tag 'test'%>

但是悲剧发生在生产模式中,

这个test.coffee在制作模式中没有缩小!

我希望将此代码缩小,但不应将其整合并缩小为application.js,因为我不希望在每个页面中加载此代码。

我如何解决这个难题?

1 个答案:

答案 0 :(得分:0)

您遇到此问题,因为默认情况下,rails不会使用coffee扩展名预编译文件。您应该可以在.js扩展名前面解决此问题,以便您的文件看起来像这样:

test.js.coffee

直接来自rails docs:

  

使用资产预编译时,您需要确保在按页面加载控制器资产时对其进行预编译。默认情况下,.coffee和.scss文件不会自行预编译。有关预编译如何工作的详细信息,请参阅预编译资产。

注意:

rails中有一种机制允许你在运行时“注入”javascript。

通常,您会在应用布局中定义yield :javascripts。 并使用以下内容为此产量添加内容:

<% content_for :javascripts do %>
  <%= script_tag :test %> # Content here will be yielded
<% end %>

这允许您在注入页面特定资产的同时在底部页面定义javascript。