预编译后Javascript无法正常工作

时间:2013-04-30 11:04:39

标签: jquery ruby-on-rails bootstrap-sass

我已经建立了一个小型网站作为学习练习,并为RoRs提供帮助。我很高兴看到“dev”运行WEBrick的结果,但是在将网站移动到通过apache服务的“生产”时遇到了问题(所以我可以留下来回顾一下)。

我已经尝试了一些我发现的小调整,但似乎没有什么能解决问题 - 在我编译资产后JavaScript停止工作 - 我的自定义小jQuery和内置引导程序(下拉列表)不再有效。基本HTML正确呈现。我确实在Chrome Developer工具中看到“application.js”中出现一个错误。我觉得这可能是问题所在,但我还没有深入研究“资产管道”来抓住它。

任何人都可以找到我可能出错的地方吗?

以下是一些细节,如果需要,我们很乐意提供更多信息。很想得到这个。

运行预编译的结果:

$ bundle exec rake assets:precompile RAILS_ENV=production
Ignoring `ruby` directive. This is a feature added to Bundler 1.2.0 and higher. Please upgrade if you would like to use it.

/usr/bin/ruby1.9.1 /usr/local/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
$

的Gemfile:

source 'https://rubygems.org'
ruby '1.9.1'
gem 'rails', '3.2.8'
gem 'mysql2'
gem 'json'
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'therubyracer', :platforms => :ruby
  gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'bootstrap-sass', '~> 2.2.2.0'
gem 'simple_form'
gem 'bcrypt-ruby', '~> 3.0.0'

应用程序/资产/ Javascript角/ application.js中:

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

app / assets / javascripts / rootEffects.js(我的一些随机jQuery):

$(document).ready(function(){
  //Tooltips for gifts
  $('.edit').tooltip({'placement':'top'});
  $('.delete').tooltip({'placement':'top'});
  $('.tip-info').tooltip({'placement':'top'});
  $('.link-buy').tooltip({'placement':'bottom'});
  $('.long-name').tooltip({'placement':'top'});
});

是否会提供公共/资产/的内容,但不确定这是否会有所帮助。

以下是我通过Chrome Dev工具看到的错误。我忽略了控制台上的第二个错误,因为这与Chrome有关。

console error

如果我从控制台点击,则显示以下错误。我强烈认为这是相关的。

JavaScript error

根据我的阅读和理解 - 预编译过程应该将我的所有JavaScript放在单个文件'application.js'中 - 可能抛出的错误是停止执行任何操作。到目前为止,我还没有找到纠正措施,所以我正在寻求帮助。

2 个答案:

答案 0 :(得分:1)

别扭。

我必须在不同的目录中玩我的application.js。

我再次转移条目,并认为它有效(类似于这个问题JQuery Working in Development, Not Production on Heroku Cedar

最终的application.js:

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

答案 1 :(得分:0)

如果您的JavaScript不起作用,请将以下行添加到production.rb文件

config.assets.compile = ['*.js', '*.css']