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



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

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

谢谢。

巴拉特

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

除非您在app/assets/javascripts/application.js中更改了默认的require语句,否则只要您的布局设置为包括其中的任何javascript文件(默认情况下是这样),它们都会自动包括在内。

特别是,如果您的应用程序.js:中有这一行

//= require_tree .

//= require_directory .

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

<%= javascript_include_tag 'application' %>

通常情况下,在默认布局中(在app/views/layouts/application.html.erb中)会出现这种情况。

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

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

最新更新