如何在每次更改assets / javascripts /目录中的.coffee文件时阻止Rails 3.2.2创建.js文件

时间:2012-04-02 02:11:09

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

每次在开发模式下更改.coffee文件时,Rails都会在同一个/ javascripts目录中创建相应的.js文件。结果是Rails最终处理了两个文件,因此我没有触发一次事件,而是结束了两次触发事件。我必须记得手动删除.js文件,以便我得到正确和预期的行为。

我的问题是:如何防止Rails首先生成.js文件?是不是应该在开发模式下编译内存中的.coffee文件?当我删除生成的.js文件时,我得到了正确和预期的行为?

感谢。

巴勒特

1 个答案:

答案 0 :(得分:1)

检查页面的<head>部分。您可以在运行应用时查看页面来源进行检查。如果你这样做,我敢打赌你会看到一个或多个包含两次的.js文件。确保您的视图中某处没有不必要的javascript_include_tags。

除非您更改app/assets/javascripts/application.js中的默认require语句,否则只要您的布局设置为包含它们(默认情况下),就会自动包含其中的所有javascript文件。

具体来说,如果你的application.js中有这一行:

//= require_tree .

//= require_directory .

这将导致app / assets / javascripts目录中的所有.js文件(以及子目录,如果您有require_tree)包含在页面中具有以下内容的位置:

<%= javascript_include_tag 'application' %>

通常会出现这种情况,因为它将在您的默认布局中(app/views/layouts/application.html.erb)。

因此,如果它们已经包含在您的布局中,您需要确保不再以任何其他方式包含它们。

您可以尝试的另一件事是从布局中删除包含,然后使用javascript_include_tag在每个视图中手动包含javascript文件。