2013-04-30 60 views
1

我已經構建了一個小型站點作爲學習練習併爲RoR提供了一個去處。我很高興在「開發」運行對WEBrick運行的結果,但有問題將網站移動到通過Apache服務「生產」(所以我可以留下來回頭看)。Java腳本在預編譯後無法工作

我已經嘗試了一些我已經發現的小調整,但似乎沒有任何更正的問題 - 編譯我的資產後JavaScript停止工作 - 我的自定義小jQuery和內置bootstrap(下拉)不再作品。基本的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' 

應用程序/資產/ Java腳本/ application.js中:

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

應用程序/資產/ JavaScript的/ 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開發工具看到的錯誤。我無視控臺上的第二個錯誤,因爲這與Chrome相關。

console error

下面是如果我從控制檯通過點擊顯示的錯誤。我強烈地感到這是相關的。

JavaScript error

從我所閱讀和理解 - 預編譯過程應該把我所有的JavaScript在一個單一的文件「的application.js」 - 可能拋出的錯誤是阻止它的任何執行。到目前爲止,我還沒有找到一個調整,以便我尋求幫助。

回答

0

如果您的JavaScript無法工作不是添加下面一行到production.rb文件

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