【问题标题】:Couldn't find file 'jquery'找不到文件'jquery'
【发布时间】:2014-08-29 11:49:25
【问题描述】:

这是我现在得到的错误:

Started GET "/" for 127.0.0.1 at 2014-08-29 06:37:21 -0500
  ActiveRecord::SchemaMigration Load (0.9ms)  SELECT "schema_migrations".* FROM "schema_migrations"
Processing by PostsController#index as HTML
  Post Load (0.8ms)  SELECT "posts".* FROM "posts"   ORDER BY created_at desc
  Rendered shared/_color.html.erb (0.6ms)
  Rendered shared/_color.html.erb (0.1ms)
  Rendered shared/_color.html.erb (0.3ms)
  Rendered posts/index.html.erb within layouts/application (47.4ms)
Completed 500 Internal Server Error in 264ms

Sprockets::FileNotFound - couldn't find file 'jquery'
  (in /app/assets/javascripts/application.js:13):

这是我的application.js

//= require jquery    <--- This is Line 13
//= require jquery_ujs
//= require jquery-ui
//= require jquery.turbolinks
//= require bootstrap
//= require social-share-button
//= require turbolinks
//= require_tree .

这是我的Gemfile

source 'https://rubygems.org'

gem 'rails', '4.1.1'

group :assets do
  gem 'sass-rails', '~> 4.0.3'
  gem 'uglifier', '>= 1.3.0'
  gem 'coffee-rails', '~> 4.0.0'
  gem "font-awesome-rails"
  gem 'bootstrap-sass', '~> 3.2.0'
  gem 'autoprefixer-rails'
  gem 'jquery-rails'
  gem 'jquery-turbolinks'  
  gem 'turbolinks'
end

group :development do
    gem 'annotate', github: 'ctran/annotate_models'
    gem 'sextant'
  gem "quiet_assets", ">= 1.0.2"
  gem 'better_errors', '~> 1.1.0'
  gem 'binding_of_caller', '~> 0.7.2'
    gem 'meta_request'
    gem 'execjs'
    gem 'therubyracer'  
  gem "letter_opener"
  gem 'bullet'   
  gem 'rack-mini-profiler'     
  gem 'guard-rails'
  gem 'rb-fchange', :require => false
  gem 'rb-fsevent', :require => false
  gem 'rb-inotify', :require => false
  gem 'guard-livereload', '~> 2.3.0', :require => false
  gem 'rack-livereload', '~> 0.3.15'
  gem 'spring'
end

group :production do
  gem 'rails_12factor'
end

gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'devise', '~> 3.2.4'
gem 'thin'
gem 'pg'
gem 'cancancan', '~> 1.8.2'
gem 'rolify'
gem 'rmagick', :require => 'RMagick'
gem "mini_magick"
gem 'carrierwave', '~> 0.10.0'
gem "fog", "~> 1.3.1"
gem 'figaro', '~> 0.7.0'
gem 'geocoder', '~> 1.2.2'
gem 'social-share-button', '~> 0.1.6'
gem 'ancestry', '~> 2.1.0'
gem "simple_form"

这是我的application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>My Site</title>
  <!-- Style sheet -->
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>

  <!-- Javascript -->
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <!-- Fonts -->
    <link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro%3A400%2C400italic%2C700" rel="stylesheet">
    <link href="http://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet">

  <!-- MISC -->
  <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
  <%= csrf_meta_tags %>
  <%= yield :head %>
</head>
<body>

<%= render partial: "shared/nav" %>
  <% if notice %> <div class="alert alert-info"> <%= notice %> </div> <% end %>
  <% if alert %> <div class="alert alert-warning"> <%= alert %> </div> <% end %>
<%= yield %>

</body>
</html>

什么可能导致这个错误?

【问题讨论】:

  • 尝试从资产块中删除gem 'jquery-rails',这可能会产生问题。`
  • @marcamillion 我真诚地道歉,因为我不小心点击了这个问题的“否决票”按钮。我建议的解决方法是更正它并启用“赞成投票”按钮,以便您对您的帖子进行一些琐碎的编辑,以便我可以撤消我的错误。我想给你这个问题的功劳,而不是负面的打击。谢谢你,我很抱歉!

标签: jquery ruby-on-rails turbolinks


【解决方案1】:

Rails 4 的 Gemfile 中没有 assets 组。从该组中删除所有资产 gem。

http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3-2-to-rails-4-0-gemfile

【讨论】:

    【解决方案2】:

    您使用的是 rail > 4,因此默认情况下会包含 jquery,而无需在其中添加 gem。

    jquery-uj 等也是如此。

    另外,我注意到您正在使用 jquery-turbolinks gem。

    根据GitHub page,您应该按以下顺序创建您的application.js:

    //= require jquery
    //= require jquery.turbolinks
    //= require jquery_ujs
    //
    // ... your other scripts here ...
    //
    //= require turbolinks
    

    你的订单不一样...

    【讨论】:

    • 我尝试删除 jquery-rails gem,但它不起作用。它抱怨 application.js 中的require jquery
    【解决方案3】:

    在您的 Javascripts 文件夹中,页面底部将如下所示...

    '//=require jquery'
    '//=require jquery_ujs'
    '//=require turbolinks'
    '//=require_tree .'
    

    在我的情况下,我的网站中没有任何 jquery,所以我把“=”去掉,这解决了我的问题!看起来很漂亮,我可以添加!

    '// require jquery'
    '// require jquery_ujs'
    '// require turbolinks'
    '// require_tree .'
    

    感谢克里斯·邓菲

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 2013-03-30
      • 2013-06-07
      相关资源
      最近更新 更多