0

我正在将一个应用程序从 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. 重新加载浏览器

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

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

提前致谢。

4

2 回答 2

1

Rails 资产管道应与清单文件一起使用。这允许 Rails 在生产时连接所有的 javascript。为此,您应该有一个看起来像这样的 application.js 文件。

//= require jquery
//= require jquery_ujs
//= require_tree .

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

从 Rails 2 过渡到资产管道的一个很好的指南可以在这个 RailsCast 中找到:http: //railscasts.com/episodes/282-upgrading-to-rails-3-1

于 2012-11-08T01:44:31.923 回答
0

recently i have this issues

I change file config/environments/development.rb config.assets.digest = false then that working

于 2016-07-19T07:22:24.020 回答