2

我有一个清单文件partials.js,其中包含:

//= require_tree ./partials

然后每个咖啡文件都./partials/包含以下内容:

$ ->
  # Rest of the code

是否有可能在清单中有这样的东西:

$(function () {
//= require_tree ./partials
});

并删除$ ->单个文件中的包装?

(目前这实际上不起作用。代码被推到底部,上面有所需的js。)

4

2 回答 2

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 部分。否则,预处理器将尝试注入一个分号来破坏脚本,从而制作出这样的东西

$(function () {
;
  //rest of your code here
});
于 2012-07-26T20:07:08.453 回答
1

另一种方法是创建一个 load_my_asset.js.erb 文件:

function loadMyAsset() {
    <%= Rails.application.assets.find_asset('path/to/asset').source %>
};

并在 application.js

//= require load_my_asset

在开发和生产中都有效

于 2015-04-03T06:04:08.373 回答