问题
Somehow can't get javascript to run:
Am trying to use rails 3.2.2, Heroku, Cedar stack. The application works fine locally, and seems to be deploying fine to Heroku, but the javascript refuses to run. this thread seemed to cover a similar question but without a good solution in the end so thought i'd try again javascript not running on heroku with rails 3.1
I've stripped down my javascript to the bare minimum as shown below. While i didn't show the heroku deploy log it looks fine (precompile goes through etc.). The minimum javascript i left in does two things: put out an alert when enter is pressed on a form (wanted to test that all javascript and not just jQuery-UI wasn't working) and the other two functions support jQuery-UI
the asset pipeline compilation process looks fine, i.e. my js/css is available in the browser html link, i've looked through firebug and nothing seems to happen when i try to trigger the javascript (although am not an expert firebug user...)
any ideas?
thanks!
Gem file: source 'https://rubygems.org'
gem 'rails', '3.2.2'
gem "pg"
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'devise'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate'
gem 'omniauth'
gem 'omniauth-facebook'
gem 'fb_graph'
gem 'carrierwave'
gem 'fog'
gem 'mini_magick'
gem 'aws-s3', :require => 'aws/s3'
gem "nested_form", :git => 'https://github.com/ryanb/nested_form.git'
group :development do
gem 'rspec-rails', '2.6.1'
gem 'annotate', '2.4.0'
gem 'faker', '0.3.1'
end
group :test do
gem 'rspec-rails', '2.6.1'
gem 'webrat', '0.7.1'
gem 'spork', '0.9.0.rc8'
gem 'factory_girl_rails', '1.0'
end
group :production do
end
application.css
/*
*= require_self
*= require_tree .
*= require_tree ../../../vendor/assets/stylesheets
*/
application.js
// Place your application-specific JavaScript functions and classes here
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
var $ = jQuery.noConflict();
//function to prevent submission of form on enter
$(function() {
$("input").not( $(":button") ).keypress(function (evt) {
if (evt.keyCode == 13) {
alert("enter pressed");
return false;
}
});
});
// default tab option e.g. to show menu
$(function() {
$("#tabs").tabs()
});
// datepicker in add visit form
$(function() {
$( "#visit_visit_date" ).datepicker({ dateFormat: 'yy-mm-dd' });
});
application.html.erb:
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
heroku logs
2012-03-26T07:44:37+00:00 app[web.1]: [2012-03-26 07:44:37] INFO WEBrick::HTTPServer#start: pid=1 port=34422
2012-03-26T07:44:39+00:00 heroku[web.1]: State changed from starting to up
2012-03-26T07:44:46+00:00 app[web.1]: => Rails 3.2.2 application starting in production on http://0.0.0.0:34422
2012-03-26T07:44:46+00:00 app[web.1]: => Booting WEBrick
2012-03-26T07:44:46+00:00 app[web.1]: => Call with -d to detach
2012-03-26T07:44:46+00:00 app[web.1]: => Ctrl-C to shutdown server
2012-03-26T07:44:46+00:00 app[web.1]:
2012-03-26T07:44:46+00:00 app[web.1]:
2012-03-26T07:44:46+00:00 app[web.1]: Started GET "/" for 86.145.200.112 at 2012-03-26 07:44:46 +0000
2012-03-26T07:44:46+00:00 app[web.1]: Processing by AuthenticationsController#index as HTML
2012-03-26T07:44:47+00:00 app[web.1]: Rendered layouts/_main_sidebar.html.erb (3.9ms)
2012-03-26T07:44:47+00:00 app[web.1]: Rendered authentications/index.html.erb within layouts/application (249.3ms)
2012-03-26T07:44:47+00:00 app[web.1]: Rendered layouts/_css_and_js.html.erb (0.9ms)
2012-03-26T07:44:47+00:00 app[web.1]: Rendered layouts/_header.html.erb (12.1ms)
2012-03-26T07:44:47+00:00 app[web.1]: Rendered shared/_flash_box.html.erb (5.5ms)
2012-03-26T07:44:47+00:00 app[web.1]: Completed 200 OK in 866ms (Views: 443.0ms | ActiveRecord: 66.1ms)
2012-03-26T07:44:47+00:00 app[web.1]: Rendered layouts/_footer.html.erb (0.9ms)
2012-03-26T07:44:47+00:00 app[web.1]: cache: [GET /] miss
2012-03-26T07:44:47+00:00 heroku[router]: GET rlog.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=6822ms status=200 bytes=4194
2012-03-26T07:44:47+00:00 app[web.1]: cache: [GET /assets/application-5090c5eabae5ecffdf7ce4cba7884c06.css] miss
2012-03-26T07:44:47+00:00 heroku[router]: GET rlog.herokuapp.com/assets/application-5090c5eabae5ecffdf7ce4cba7884c06.css dyno=web.1 queue=0 wait=0ms service=9ms status=200 bytes=29028
2012-03-26T07:44:48+00:00 app[web.1]: cache: [GET /assets/application-eed65c1aadddd24237c794c315626b08.js] miss
2012-03-26T07:44:48+00:00 app[web.1]: cache: [GET /assets/facebook_32-45445447cea198ebc8cc24ce1a99cddc.png] miss
2012-03-26T07:44:48+00:00 heroku[router]: GET rlog.herokuapp.com/assets/facebook_32-45445447cea198ebc8cc24ce1a99cddc.png dyno=web.1 queue=0 wait=0ms service=6ms status=200 bytes=1681
2012-03-26T07:44:48+00:00 app[web.1]: cache: [GET /assets/facebook_64-654f0f2c1ba7e19e730d497947534230.png] miss
2012-03-26T07:44:48+00:00 heroku[router]: GET rlog.herokuapp.com/assets/facebook_64-654f0f2c1ba7e19e730d497947534230.png dyno=web.1 queue=0 wait=0ms service=68ms status=200 bytes=3448
2012-03-26T07:44:48+00:00 heroku[router]: GET rlog.herokuapp.com/assets/application-eed65c1aadddd24237c794c315626b08.js dyno=web.1 queue=0 wait=0ms service=97ms status=200 bytes=455343
2012-03-26T07:44:50+00:00 app[web.1]: cache: [GET /assets/images/img02.jpg] miss
2012-03-26T07:44:50+00:00 heroku[router]: GET rlog.herokuapp.com/assets/images/img03.jpg dyno=web.1 queue=0 wait=0ms service=42ms status=200 bytes=824
2012-03-26T07:44:50+00:00 app[web.1]: cache: [GET /assets/images/img03.jpg] miss
2012-03-26T07:44:50+00:00 heroku[router]: GET rlog.herokuapp.com/assets/images/img02.jpg dyno=web.1 queue=0 wait=0ms service=56ms status=200 bytes=17861
2012-03-26T07:45:30+00:00 app[web.1]:
2012-03-26T07:45:30+00:00 app[web.1]:
2012-03-26T07:45:30+00:00 app[web.1]: Started GET "/stores" for 86.145.200.112 at 2012-03-26 07:45:30 +0000
2012-03-26T07:45:30+00:00 app[web.1]: Processing by StoresController#index as HTML
2012-03-26T07:45:30+00:00 app[web.1]: Rendered layouts/_main_sidebar.html.erb (1.9ms)
2012-03-26T07:45:30+00:00 heroku[router]: GET rlog.herokuapp.com/stores dyno=web.1 queue=0 wait=0ms service=117ms status=200 bytes=3954
2012-03-26T07:45:30+00:00 app[web.1]: Rendered stores/index.html.erb within layouts/application (70.8ms)
2012-03-26T07:45:30+00:00 app[web.1]: Rendered layouts/_css_and_js.html.erb (1.6ms)
2012-03-26T07:45:30+00:00 app[web.1]: Rendered shared/_flash_box.html.erb (0.1ms)
2012-03-26T07:45:30+00:00 app[web.1]: Rendered layouts/_header.html.erb (1.3ms)
2012-03-26T07:45:30+00:00 app[web.1]: Rendered layouts/_footer.html.erb (0.3ms)
2012-03-26T07:45:30+00:00 app[web.1]: Completed 200 OK in 108ms (Views: 64.2ms | ActiveRecord: 22.5ms)
2012-03-26T07:45:30+00:00 app[web.1]: cache: [GET /stores] miss
2012-03-26T07:45:30+00:00 app[web.1]: cache: [GET /assets/application-eed65c1aadddd24237c794c315626b08.js] miss
2012-03-26T07:45:30+00:00 app[web.1]: cache: [GET /assets/application-509
0c5eabae5ecffdf7ce4cba7884c06.css] miss
2012-03-26T07:45:30+00:00 heroku[router]: GET rlog.herokuapp.com/assets/application-5090c5eabae5ecffdf7ce4cba7884c06.css dyno=web.1 queue=0 wait=0ms service=14ms status=304 bytes=0
2012-03-26T07:45:30+00:00 heroku[router]: GET rlog.herokuapp.com/assets/application-eed65c1aadddd24237c794c315626b08.js dyno=web.1 queue=0 wait=0ms service=17ms status=304 bytes=0
2012-03-26T07:45:31+00:00 app[web.1]: cache: [GET /assets/images/img03.jpg] miss
2012-03-26T07:45:31+00:00 heroku[router]: GET rlog.herokuapp.com/assets/images/img03.jpg dyno=web.1 queue=0 wait=0ms service=19ms status=304 bytes=0
2012-03-26T07:45:31+00:00 app[web.1]: cache: [GET /assets/images/img02.jpg] miss
2012-03-26T07:45:31+00:00 heroku[router]: GET rlog.herokuapp.com/assets/images/img02.jpg dyno=web.1 queue=0 wait=0ms service=24ms status=304 bytes=0
2012-03-26T07:45:32+00:00 app[web.1]:
2012-03-26T07:45:32+00:00 app[web.1]:
2012-03-26T07:45:32+00:00 app[web.1]: Parameters: {"id"=>"2"}
2012-03-26T07:45:32+00:00 app[web.1]: Started GET "/show_rast?id=2" for 86.145.200.112 at 2012-03-26 07:45:32 +0000
2012-03-26T07:45:32+00:00 app[web.1]: Processing by StoresController#show_rast as HTML
2012-03-26T07:45:33+00:00 app[web.1]: Rendered layouts/_main_sidebar.html.erb (0.9ms)
2012-03-26T07:45:33+00:00 app[web.1]: Rendered stores/show_rast.html.erb within layouts/application (103.6ms)
2012-03-26T07:45:33+00:00 app[web.1]: Re
ndered layouts/_css_and_js.html.erb (0.7ms)
2012-03-26T07:45:33+00:00 app[web.1]: Rendered layouts/_header.html.erb (1.2ms)
2012-03-26T07:45:33+00:00 app[web.1]: Rendered shared/_flash_box.html.erb (0.0ms)
2012-03-26T07:45:33+00:00 app[web.1]: Rendered layouts/_footer.html.erb (0.3ms)
2012-03-26T07:45:33+00:00 app[web.1]: Completed 200 OK in 459ms (Views: 108.9ms | ActiveRecord: 177.3ms)
2012-03-26T07:45:33+00:00 app[web.1]: cache: [GET /show_rast?id=2] miss
2012-03-26T07:45:33+00:00 heroku[router]: GET rlog.herokuapp.com/show_rast dyno=web.1 queue=0 wait=0ms service=474ms status=200 bytes=37071
2012-03-26T07:45:38+00:00 app[web.1]:
2012-03-26T07:45:38+00:00 app[web.1]:
2012-03-26T07:45:38+00:00 app[web.1]: Started GET "/stores" for 86.145.200.112 at 2012-03-26 07:45:38 +0000
2012-03-26T07:45:38+00:00 app[web.1]: Processing by StoresController#index as HTML
2012-03-26T07:45:38+00:00 app[web.1]: Rendered layouts/_main_sidebar.html.erb (0.7ms)
2012-03-26T07:45:38+00:00 app[web.1]: Rendered shared/_flash_box.html.erb (0.0ms)
2012-03-26T07:45:38+00:00 app[web.1]: Rendered layouts/_header.html.erb (1.3ms)
2012-03-26T07:45:38+00:00 app[web.1]: Rendered layouts/_footer.html.erb (0.7ms)
2012-03-26T07:45:38+00:00 app[web.1]: Completed 200 OK in 20ms (Views: 12.0ms | ActiveRecord: 5.3ms)
2012-03-26T07:45:38+00:00 app[web.1]: cache: [GET /stores] miss
2012-03-26T07:45:38+00:00 app[web.1]: Rendered stores/index.html.erb within layouts/application (10.7ms)
2012-03-26T07:45:38+00:00 app[web.1]: Rendered layouts/_css_and_js.html.erb (0.7ms)
2012-03-26T07:45:38+00:00 heroku[router]: GET rlog.herokuapp.com/stores dyno=web.1 queue=0 wait=0ms service=31ms status=304 bytes=0
2012-03-26T07:45:39+00:00 app[web.1]:
2012-03-26T07:45:39+00:00 app[web.1]:
2012-03-26T07:45:39+00:00 app[web.1]: Started GET "/visits/new?id=2" for 86.145.200.112 at 2012-03-26 07:45:39 +0000
2012-03-26T07:45:39+00:00 app[web.1]: Processing by VisitsController#new as HTML
2012-03-26T07:45:39+00:00 app[web.1]: Parameters: {"id"=>"2"}
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_cart_item.html.erb (1.9ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_cart.html.erb (2.7ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_cart_sidebar.html.erb (3.7ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered shared/_error_messages.html.erb (0.4ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_fields.html.erb (1.2ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_rast_tabs.html.erb (133.6ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_dish_review_fields.html.erb (6.6ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/_picture_fields.html.erb (0.8ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered visits/new.html.erb within layouts/application (179.6ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered layouts/_css_and_js.html.erb (0.7ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered layouts/_header.html.erb (1.3ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered shared/_flash_box.html.erb (0.0ms)
2012-03-26T07:45:39+00:00 app[web.1]: Rendered layouts/_footer.html.erb (0.3ms)
2012-03-26T07:45:39+00:00 app[web.1]: Completed 200 OK in 251ms (Views: 178.5ms | ActiveRecord: 19.6ms)
2012-03-26T07:45:39+00:00 app[web.1]: cache: [GET /visits/new?id=2] miss
2012-03-26T07:45:39+00:00 heroku[router]: GET rlog.herokuapp.com/visits/new dyno=web.1 queue=0 wait=0ms service=284ms status=200 bytes=54444
回答1:
i figured out my problem. I had a few other files (the script.aculo.us files (controls.js, dragdrop.js, effects.js) and prototype.js in my app/assets/javascripts/ folder (leftovers from a previous iteration of the program) that were getting included in the asset pipeline together with the application.js through the //= require_tree . call. The sciprt.aculo.us files seem to have been messing up things
I've now managed to get my program to work. I am assuming i don't need script.aculo.us anymore (does similar stuff as jquery-ui) nor prototype.js (jquery used now), am i wrong?
Dogbert thx for your help.
来源:https://stackoverflow.com/questions/9869180/heroku-cedar-javascript-not-working