我建立了一个小型站点作为学习练习并尝试使用 RoR。我对针对 WEBrick 运行“开发”的结果感到满意,但是在将站点移动到通过 apache 服务的“生产”时遇到了问题(所以我可以把它留在身边回顾)。
我已经尝试了一些我发现的小调整,但似乎没有任何问题可以解决这个问题——在我编译我的资产之后,JavaScript 停止工作——我的自定义小 jQuery 和内置的引导程序(下拉菜单)都不再有效。基本 HTML 正确呈现。我确实在 Chrome 开发人员工具中可见的“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
$
宝石文件:
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'
应用程序/资产/javascripts/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'});
});
将提供 public/assets/ 的内容,但不确定这是否有帮助。
这是我通过 Chrome 开发工具看到的错误。我忽略了控制台上的第二个错误,因为这是与 Chrome 相关的。
如果我从控制台单击,以下是显示的错误。我强烈认为这是相关的。
根据我的阅读和理解 - 预编译过程应该将我所有的 JavaScript 放在一个文件“application.js”中 - 可能引发的错误正在停止执行任何它。到目前为止,我还没有找到一个调整来纠正这个问题,所以我正在寻求帮助。