2013-01-12 27 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