2016-02-05 21 views
0

我已經嘗試了所有在stackoverflow中的解決方案,但我仍然有jquery加載rails的問題。它在localhost上工作,但不在heroku上。在任何情況下,Rails jquery無法加載

所以,這裏是我的application.js文件

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

這裏application.css文件

*= require_tree . 
*/ 

這裏是我的寶石文件;

source 'https://rubygems.org' 

gem 'rails',    '4.2.0' 
gem 'json',    '~> 1.8.2' 
gem 'bcrypt',    '3.1.7' 

gem 'bootstrap-sass',  '3.2.0.0' 
gem 'sass-rails',   '5.0.1' 
gem 'uglifier',    '2.5.3' 
gem 'coffee-rails',   '4.1.0' 
gem 'jquery-rails',   '4.0.3' 
#//= require turbolinks TO ASSETS gem 'turbolinks',   '2.3.0' 
gem 'jbuilder',    '2.2.3' 
gem 'sdoc',     '0.4.0', group: :doc 
gem "mailboxer" 
gem "select2-rails" 

group :development, :test do 
    gem 'sqlite3',  '1.3.9' 
    gem 'byebug',  '3.4.0' 
    gem 'web-console', '2.0.0.beta3' 
    gem 'spring',  '1.1.3' 
end 

group :test do 
    gem 'minitest-reporters', '1.0.5' 
    gem 'mini_backtrace',  '0.1.3' 
    gem 'guard-minitest',  '2.3.1' 
end 

group :production do 
    gem 'pg',    '0.17.1' 
    gem 'rails_12factor', '0.0.2' 
end 

,這裏是我的application.html.erb

<!DOCTYPE html> 
<html> 
<head> 
    <title>...</title> 
    <meta charset="UTF-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="initial-scale = 1.0,maximum-scale = 1.0" /> 



    <%= javascript_include_tag 'application', 'data-turbolinks-track' => false %> 
    <%= stylesheet_link_tag 'application', media: 'all', 
              'data-turbolinks-track' => false %> 

    <%= csrf_meta_tags %> 
</head> 
<body> 

<%= yield %> 

</body> 
</html> 

有趣的是,控制檯不提供有關jQuery的錯誤,但是我的滑塊不起作用。並且一些css更改沒有反映到heroku(我做了預編譯)

+0

在生產模式下在本地嘗試:您可能會遇到同樣的問題,調試起來會更容易。另外,在你正在使用的瀏覽器中使用devtools:他們會指引你找到丟失的文件,然後你可以從那裏恢復工作,試圖找出文件不存在的原因。 –

+0

這裏是錯誤:'未捕獲的ReferenceError:jQuery沒有定義.'爲什麼它不加載jquery ?.它被列在application.js文件中的第一位 –

+0

使用rails 4不需要預編譯資產 - 只需彈出'rails_12factor' gem,它應該設置您的應用程序,以便在推送時在heroku上編譯資產並提供靜態資產。 https://devcenter.heroku.com/articles/rails-4-asset-pipeline – max

回答

1

由於Heroku預編譯默認情況下,我會說這個錯誤很可能是你有一個「污染」的預編譯資產(當你有可能8-10 application.js變體public/assets)。

我 - 當然 - 是完全錯誤的,會高興地刪除這個帖子,但你不妨試試:

$ rake assets:clean 
$ git add . 
$ git commit -a -m "Assets" 
$ git push heroku master 

$ heroku rake assets:clean 
0

這似乎是一個資產編譯問題。對於Heroku的確保您的生產環境配置好,看看你/config/production.rb,並確保你有這些CONFIGS:

config.serve_static_files = false 
config.assets.compile = false 
config.assets.digest = true 

檢查後上述CONFIGS然後確保你的public/assets文件夾不在.gitignore。在當地

然後預編譯資產,然後重新部署到Heroku上,運行以下命令: rake assets:precompile RAILS_ENV=production

這可能需要幾分鐘,該過程完成後,那麼你可以提交併推到Heroku上後:

git add . 
git commit -m "Precompiled assets for heroku" 
git push heroku master 
相關問題