我有一个清单文件partials.js
,其中包含以下内容:
//= require_tree ./partials
然后./partials/
中的每个咖啡文件都包含以下内容:
$ ->
# Rest of the code
是否有可能在清单中有这样的东西:
$(function () {
//= require_tree ./partials
});
并删除单个文件中的$ ->
包装?
(目前这实际上并不起作用。代码被推到底部,上面需要js。)
答案 0 :(得分:4)
我最近遇到了同样的问题,我最终做的是:
以你的清单为例:
$(function () {
//= require_tree ./partials
});
我们可以把它变成一个看起来像这样的清单:
//= require ./head
//= require_tree ./partials
//= require ./tail
然后我们制作head.js
:
$(function (){ //need line to end with semicolon to trick preprocessor;
然后我们制作tail.js
:
});
诀窍是以一个带注释的分号结束head.js。另一方面,preprocesser将尝试注入一个分号,打破脚本,制作像这样的东西
$(function () {
;
//rest of your code here
});
答案 1 :(得分:0)
另一种方法是创建load_my_asset.js.erb文件:
function loadMyAsset() {
<%= Rails.application.assets.find_asset('path/to/asset').source %>
};
并在application.js
中//= require load_my_asset
在开发和生产中都有效