【发布时间】:2016-03-30 11:04:35
【问题描述】:
这是我的代码:
$('li.food').addClass('red');
网站正在制作中。我在 app/assets/javascripts 文件夹中创建了一个 jquery 文件作为 hide.js。
这是在我的application.html.erb 文件中:
<head>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'hide', 'data-turbolinks-track' => true %>
<%= stylesheet_link_tag 'hide', media: 'all', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<meta name="viewport" content="width=device-width, initial-scale=1">
<%= render 'layouts/shim' %>
</head>
这是 Heroku 日志中的错误消息:
ActionController::RoutingError (No route matches [GET] "/javascripts/hide.js"):
vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.2/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.2/lib/active_support/tagged_logging.rb:68:in `block in tagged'
vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.2/lib/action_dispatch/middleware/request_id.rb:21:in `call'
这是我的application.js 文件
//= require social-share-button
//= require jquery
//= require jquery_ujs
//= require hide
//= require hide.js
//= require bootstrap
//= require turbolinks
//= require_tree .
宝石文件
source 'https://rubygems.org'
gem 'rails', '4.2.2'
gem 'bootstrap-sass', '3.2.0.0'
gem 'bcrypt', '3.1.7'
gem 'faker', '1.4.2'
gem 'carrierwave', github: 'carrierwaveuploader/carrierwave'
gem 'mini_magick', '3.8.0'
gem 'fog', '1.36.0'
gem 'will_paginate', '3.0.7'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'sass-rails', '5.0.2'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'sdoc', '0.4.0', group: :doc
gem 'fog-aws'
gem 'activerecord-reputation-system', require: 'reputation_system'
gem 'social-share-button', '~> 0.1.6'
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem "spring", group: :development
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'
gem 'puma', '2.11.1'
end
Chrome 错误
Failed to load resource: the server responded with a status of 404 (Not Found) ...for stylesheets/hide.css
Failed to load resource: the server responded with a status of 404 (Not Found) ...for javascripts/hide.js
我试过bundle exec rake assets:precompile 和Heroku run bundle exec rake assets:precompile。
我在运行引导 jquery 组件(如 Carousel)时没有任何问题。
从搜索来看,似乎我应该做的就是将 hide.js 放在 app/assets/javascripts 中,而 Rails 应该负责其余的工作,:(
【问题讨论】:
-
你已经隐藏在你的需求树中,但它是否包含在应用程序中?
-
您可以尝试从您的
application.js中删除//= require hide //= require hide.js。它们被//= require_tree .自动包含在application.js中 -
是的,还是不行。
-
尝试
bundle exec rake assets:precompile RAILS_ENV=production并将公共资产推送到heroku。 -
有人可以检查我的 jquery 代码是否正确,所以我知道这不是问题吗?
标签: jquery ruby-on-rails heroku