快速示例,
让我们说,我有这个js文件,test.coffee
alert 'test!'
我的目标是,
我不希望在每个页面中加载此代码
所以我手动包括我想要的地方,
<%= javascript_include_tag 'test'%>
但是悲剧发生在生产模式中,
这个test.coffee
在制作模式中没有缩小!
我希望将此代码缩小,但不应将其整合并缩小为application.js
,因为我不希望在每个页面中加载此代码。
我如何解决这个难题?
答案 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。