如何为JavaScript开发配置Rails 3

时间:2012-11-08 01:30:50

标签: ruby-on-rails-3

我正在将应用程序从Rails 2移动到Rails 3.我在应用程序中有一堆JavaScript文件,其中大部分用于处理Google Maps。以前,我的JS文件在public / javascripts / * .js中。我注意到它们没有被任何使用javascript_include_tag的页面加载,后者编写了一个试图从/assets/*.js加载JS文件的JavaScript标记。 (例如/assets/application.js)。

我读到Rails 3希望JS文件位于app / assets / javascripts / * .js中。所以我把我的JS文件移到那里,但它们仍然无法在/assets/application.js访问,除非我先运行捆绑exec rake资产:预编译

我的JS开发周期不可能是:

  1. 更改为JS
  2. 运行bundle exec rake assets:precompile
  3. 重新加载浏览器
  4. 太长了。 我的问题是如何配置我的应用以便开发周期如下?

    1. 更改为JS
    2. 重新加载浏览器
    3. 到目前为止,我已经尝试过:

      • 启用读取“Bundler.require(:default,:assets, Rails.env)“在config / application.rb
      • 在config / application.rb
      • 中设置config.assets.enabled = false(和true)

      提前致谢。

2 个答案:

答案 0 :(得分:1)

Rails资产管道应与清单文件一起使用。这允许Rails在生产时连接所有的javascript。为此,您应该有一个类似于。

的application.js文件
//= require jquery
//= require jquery_ujs
//= require_tree .

这里的重要部分是require_tree部分。这告诉Rails将所有其他javascript文件包含在同一文件夹中。这意味着您希望application.js的清单版本和所有自定义JavaScript文件都存在于app / assets / javascripts中。

可以在此RailsCast中找到从Rails 2转换到资产管道的良好指南:http://railscasts.com/episodes/282-upgrading-to-rails-3-1

答案 1 :(得分:0)

最近我有这个问题

我更改了文件config / environments / development.rb config.assets.digest = false 然后那工作