1

我这里有个问题。我正在开发一个使用 Rails 和 Backbone 构建的应用程序。在我的开发环境中,一切运行良好,但是当我将其部署到生产服务器时,我的 firebug 中显示了此错误:

TypeError: this._reset is not a function
...;return a.success=function(d,e,f){ba.add?"add":"reset",c&&c(b,...

有人可以帮我吗?

修订版 1
我已经预编译了资产,这是我的 Gemfile :

source 'https://rubygems.org'

gem 'rails', '3.2.0'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'mysql2'
gem 'devise', '1.5.3'
gem 'friendly_id'
gem 'pry'
gem "paperclip", "~> 2.5.0"
gem "kaminari"
#gem "ckeditor", "3.7.0.rc3"
gem "tinymce-rails"
gem "puma"
gem "tlsmail"
gem "rails-erd"
gem "juggernaut"
gem "thin"

#gem 'execjs'
#gem 'therubyracer'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer'

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

无论如何,我得到了这个新事实。我尝试在本地计算机上以生产模式运行该应用程序,它运行良好,但在我的服务器中却没有。有什么我忘了在我的服务器上安装的东西吗?

4

1 回答 1

0

看来您手动安装骨干网。

我建议使用诸如骨干轨宝石之类的东西来帮助优雅地集成导轨和骨干。像https://github.com/codebrew/backbone-rails之类的东西(周围还有其他 gem,但 codebrew 实现是最受欢迎的实现之一)。

这是为了确保跨机器的一致性依赖。

不要忘记阅读资产管道,我在生产中使用 js 和 rails 的大部分问题来自于我对 rails 3 资产管道缺乏了解:http: //guides.rubyonrails.org/asset_pipeline.html

如果你认真考虑整合骨干网和 Rails,https://learn.thoughtbot.com/products/1-backbone-js-on-rails是不可或缺的资源(49 美元)

已编辑: 这是我在创建主干.js 和 rails 应用程序时的典型 Gemfile:

group :assets do
  gem 'haml-rails', '~> 0.3.4'
  gem 'sass-rails', '~> 3.2.5'
  gem 'bootstrap-sass', '~> 2.0.3.1'
  gem 'compass', '~> 0.12.1'
  gem 'compass-rails', '~> 1.0.2'

  gem 'coffee-rails', '~> 3.2.2'
  gem 'jquery-rails', '~> 2.0.2'
  gem 'jquery-ui-rails', '~> 1.1.0'
  gem 'handlebars_assets', '~> 0.4.4'

  gem 'rails-backbone', '~> 0.7.2'

  # javascript
  gem 'haml_coffee_assets', '~> 1.2.0'
  gem 'execjs', '~> 1.4.0'
  gem 'therubyracer', '~> 0.10.1'
  gem 'uglifier', '~> 1.2.4'
  gem 'yajl-ruby', '~> 1.1.0'
end
于 2012-09-03T10:39:55.413 回答