【问题标题】:How to configure Rails 3 for JavaScript development如何为 JavaScript 开发配置 Rails 3
【发布时间】:2012-10-28 04:24:18
【问题描述】:

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

我读到 Rails 3 期望 JS 文件位于 app/assets/javascripts/*.js 中。所以我将我的 JS 文件移到了那里,但它们仍然无法在 /assets/application.js 中访问,除非我先运行 bundle exec rake assets:precompile

我的 JS 开发周期不能是:

  1. 对 JS 进行更改
  2. 运行 bundle exec rake assets:precompile
  3. 重新加载浏览器

太长了。 我的问题是如何配置我的应用以使开发周期如下?

  1. 对 JS 进行更改
  2. 重新加载浏览器

到目前为止我已经尝试过:

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

提前致谢。

【问题讨论】:

  • 你在 development.rb 中有 config.assets.compress=false 吗?
  • 是的,config.assets.compress 在 development.rb 中为 false。
  • 只是想消除这里的东西 - 你的布局中有 吗?

标签: ruby-on-rails-3


【解决方案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

【讨论】:

  • 我的 application.js 中确实有这些行。但这仍然不允许我修改 JS 文件并在刷新浏览器后立即看到结果。另外,请注意,在这个阶段,我只是在开发而不是在生产中。
【解决方案2】:

最近有这个问题

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

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2019-12-07
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多