16

我正在尝试一些 Rails 的示例应用程序。我创建了一些控制器和页面。但是当我尝试访问其中一个时,我在网页上遇到异常:


Sprockets::FileNotFound in Pages#home
Showing c:/railscode/test_app/app/views/layouts/application.html.erb
where line #6 raised:

couldn't find file 'jquery'
  (in c:/railscode/test_app/app/assets/javascripts/application.js:7)
Extracted source (around line #6):

    3: <head> 
    4:   <title>TestApp</title> 
    5:   <%= stylesheet_link_tag    "application" %> 
    6:   <%= javascript_include_tag "application" %> 
    7:   <%= csrf_meta_tags %> 8: </head> 9: <body>

Rails.root:`c:/railscode/test_app`

我使用以下命令创建了一些控制器:

$ rails generate controller Pages home contact

  create  app/controllers/pages_controller.rb
   route  get "pages/contact"
   route  get "pages/home"
  invoke  erb
  create    app/views/pages
  create    app/views/pages/home.html.erb
  create    app/views/pages/contact.html.erb
  invoke  rspec
  create    spec/controllers/pages_controller_spec.rb
  create    spec/views/pages
  create    spec/views/pages/home.html.erb_spec.rb
  create    spec/views/pages/contact.html.erb_spec.rb
  invoke  helper
  create    app/helpers/pages_helper.rb
  invoke  rspec
  create     spec/helpers/pages_helper_spec.rb
  invoke  assets
  invoke    js
  create      app/assets/javascripts/pages.js
  invoke    css
  create      app/assets/stylesheets/pages.css

只是想知道问题可能出在哪里以及在哪里寻找?我通过 URL 访问页面:http://localhost:3000/pages/home

4

5 回答 5

18

取消注释该行

//= require jquery

在 application.js 文件中并重新启动应用程序对我有用。

于 2012-01-14T15:35:55.857 回答
11

在安装http://metaskills.net/2011/09/26/less-is-more-using-twitter-bootstrap-in-the-rails-3-1-asset-pipeline/FileNotFound后遇到了类似的问题twitter/bootstrap

我做到了rake assets:clean assets:precompile,但这没有帮助。有帮助的是按照 afaf12 的建议重新启动 rails 应用程序。

于 2012-02-23T07:15:28.300 回答
1

对我来说,解决方案是运行yarn install. YMMV

于 2021-08-25T17:14:21.003 回答
0

您的jquery-rails宝石很可能已过时。当我遇到类似的错误时,更新 gem 解决了这个问题。

您是否从头开始将其创建为 Rails 3.1 应用程序?或者您是从某个地方下载代码(或更新旧应用程序)?

于 2011-11-25T15:40:14.617 回答
0

在 rails 6.xx 中,问题可以通过执行来解决

bundle exec rails webpacker:install
于 2021-06-18T11:50:18.837 回答