2013-01-12 47 views
0

我已經在我的_header.html.erb下列文件:錯誤:Rails中找不到文件 'jQuery的UJS' 3

<%= stylesheet_link_tag 'application', :media => "all" %> 
<%= javascript_include_tag 'application' %> 
<%= csrf_meta_tags %> 
<%= favicon_link_tag '/favicon.ico'%> 

我的Gemfile包括以下內容:

source 'https://rubygems.org' 

gem 'rails', '3.2.9' 
gem 'jquery-rails' 
gem 'bcrypt-ruby' 
gem 'paperclip' 

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

end 

group :development, :test do 
    gem 'rspec-rails' 
    gem 'sqlite3' 
    gem 'thin' 

end 

group :production do 
    gem 'pg' 

end 

bundle show證明即安裝了'jquery-rails'。所以看着我的application.js文件顯示,

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

都存在和佔。

我越來越 - ERROR: Sprockets::FileNotFound in Home#landing

app/views/layouts/_header.html.erb where line #6 raised:

3: <head> 
4: <title>SampleApp</title> 
5: <%= stylesheet_link_tag 'application', :media => "all" %> 
6: <%= javascript_include_tag 'application' %> 
7: <%= csrf_meta_tags %> 
8: <%= favicon_link_tag '/favicon.ico'%> 
9: </head> 

在谷歌上搜索這個問題,據我所知,jquery-rails擔任了兩個jQuery和jQuery的UJS和6號線應該叫jquery-ujsapplication.js

誰能告訴我,爲什麼我得到這個錯誤?

回答

0

我想通了,它有事情做與「薄」的發動機。當我離開時將其移除並解決問題。我沒有時間深入研究爲什麼會出現這個問題,但如果其他人想評論Thin爲什麼會導致錯誤,請成爲我的客人。

+0

我甚至沒有'瘦'我的Gemfile。在這裏有一個領先的東西嗎? – marvindanig

0

替換您如下幾行:

<%= javascript_include_tag 'application' %> 
<%= csrf_meta_tags %> 

隨着我的臺詞:

<%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' %> 
<%= javascript_include_tag 'rails' %> 

希望,這將解決您的問題!

+0

我知道「rails方式」只是隨流而行,但通過直接包含資產來規避破碎的代碼似乎並不是一個很好的解決方案。我有同樣的問題,我真的希望有人能夠幫助確定Rails在這裏損壞了什麼,而不是硬編碼外部庫。 – Ethan

+0

你是對的。相反,只需將該js庫文件複製到app/assets/javscripts文件夾中,然後標記該javsacript文件所需的文件即可。這將包括您的應用程序中的jquery.js庫。 – Ajay

+0

抱歉,我的意思並不是暗示從Google API拉出有什麼問題 - 對於大多數用戶來說實際上要快得多(因爲使用Google jQuery API的大量Web應用程序可能意味着該庫已經存在緩存在瀏覽器中)。我的意思是我假定Rails「/ = require jquery」和「/ = require jquery_ujs」爲rails安裝提取了正確版本的庫,並對特定的庫進行了硬編碼,以便將來更新。就原則而言,圍繞框架問題進行硬編碼的想法在幾個層面上困擾着我。 – Ethan