简体   繁体   中英

Jquery not working in Production & Heroku but works perfectly well in development

your advise would be much appreciated.

Heroku and my production environment are not picking up my jQuery coding (Javascript files) - i have literally tried every code, suggestions and command and still unsuccessful. i have pasted my files below - if one could point out what it is i am doing wrong that needs to be corrected would much appreciate it.

-

views/layout/application.html.erb

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title><%= full_title(yield(:title)) %></title>

    <%= stylesheet_link_tag    "application" %>
    <%= javascript_include_tag "vendor/modernizr" %>

    <%= csrf_meta_tags %>
    <%= favicon_link_tag 'img-logo-five.png' %>
    <%= favicon_link_tag 'apple-touch-icon-#{196}x#{196}.png', rel: 'apple-touch-icon', type:'image/png' %>
  </head>

  <body data-no-turbolink="true">
    <div class="medium-12 columns container"> 

      <% if notice %>
        <div id="notice_wrapper">
          <p id="notice"><%= notice %></p>
        </div>
      <% elsif alert %>
        <div id="alert_wrapper">
          <p id="alert"><%= alert %></p> 
        </div>
      <% end %>

      <%= yield %>
    </div>

    <%= javascript_include_tag "application" %>
  </body>
</html>

Gemfile

source 'https://rubygems.org'

gem 'rails', '4.1.10'
gem 'bcrypt', '3.1.7'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'foundation-rails', '5.3.1.0'
gem 'simple_form'
gem "font-awesome-rails"
gem 'devise'
gem "ransack", github: "activerecord-hackery/ransack", branch: "rails-4.1"
gem "polyamorous", :github => "activerecord-hackery/polyamorous"
gem 'carrierwave'
gem 'rmagick'
gem 'acts_as_commentable'
gem "cocoon"
gem 'geocoder'
gem 'social-share-button'
gem 'twilio-ruby'
gem 'cancancan', '~> 1.10'
gem 'public_activity'
gem 'foundation-datetimepicker-rails'
gem 'jquery-ui-rails'

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
  gem 'quiet_assets'
  gem 'mailcatcher'
  gem "better_errors"
  gem 'awesome_print'
  gem 'pry'
  gem 'binding_of_caller'
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'
  gem 'unicorn',        '4.8.3'
end

config/environments/production.rb

Rails.application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_files = true
  config.assets.compress = true
  config.assets.js_compressor = :uglifier
  config.assets.compile = true
  config.assets.precompile =  ['*.js', '*.css', '*.css.erb']
  config.assets.digest = true
  config.log_level = :info
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
  config.active_record.dump_schema_after_migration = false
  config.action_mailer.default_url_options = { host: 'website.herokuapp.com' }
  Rails.application.routes.default_url_options[:host] = 'website.herokuapp.com'
end

config/locales/application.rb

require File.expand_path('../boot', __FILE__)

require 'rails/all'
Bundler.require(*Rails.groups)

module RecruitmentAfricaApp
  class Application < Rails::Application
    config.assets.precompile += %w(*.js)
    config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
       address: "smtp.mandrillapp.com", #if using a another domain this will be provided by the domain company
       port: 111,
       enable_starttls_auto: true,
       user_name: "email@gmail.com", #this would need to be for example info@recruitmentafrica.com
       password: "#####",
       authentication: :login,
       domain: "gmail.com",
     }
  end
end

assets/javascripts/application.js

    //= require jquery
//= require jquery_ujs
//= require foundation
//= require turbolinks
//= require jquery-ui
//= require cocoon
//= require social-share-button
//= require foundation-datetimepicker
//= require_tree .


/*=========================================
    general js content
  =========================================*/

$(function(){ $(document).foundation(); });


// sigin-in alert message | devise signin/signout error messages
$(document).ready(function(){
  setTimeout(function(){
    $('#notice_wrapper').fadeOut("slow", function() {
      $(this).remove();
    })
  }, 2500);
});

// sigin-out alert message | devise signin/signout error messages
$(document).ready(function(){
  setTimeout(function(){
    $('#alert_wrapper').fadeOut("slow", function() {
      $(this).remove();
    })
  }, 2500);
});

// jquery-ui datepicker 
$(document).ready(function() {
  $('.datepicker').datepicker({ dateFormat: 'MM dd, yy' }); 
  // $('.datepicker').datepicker({ dateFormat: 'D, dd M yy' }); 
});

assets/stylesheets/application.css

/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 *= require_tree .
 *= require_self
 *= require foundation_and_overrides
 *= require foundation
 *= require social-share-button
 *= require jquery-ui
 *= require font-awesome
 */

commands & codes i have tried but still no success

  • [1.] i have re-arranged my js files in application.js
  • [2.] i have set in production.rb: config.assets.compile = true
  • [3.] i have run the command: rake assets:precompile then git push heroku master
  • [4.] i have run the command: RAILS_ENV=production bundle exec rake assets:precompile
  • [5.] i have run the command: heroku run rake assets:precompile --app appName
  • [6.] my javascript does not return a 404 HTTP error online
  • [7.] i've tried adding the gem in the gemfile gem 'jquery-turbolinks' & in application.js //= require jquery.turbolinks
  • [8.] in application.rb i've added: config.assets.precompile += %w(*.js)
  • [9.] in production.rb i have added config.assets.precompile = ['*.js', '*.css', '*.css.erb']
  • [10.] i placed in a simple alert code alert('some-unique-string') pushed to heroku but do not see the alert in the console
  • [11.] i have set: assets.compress=true
  • [12.] i have set: config.assets.compress = true & run the command RAILS_ENV=production bundle exec rake assets:precompile
  • [14.] i installed the jquery.migrate.plugin i am unsure what more to do & your help would be much appreciated. Many thanks

before deploying to heroku i needed to precompile my files:

  • bundle exec rake assets:precompile
  • git add .
  • git commit -m "precompiled files"
  • git push heroku master

this automatically updates all js files and css files onto heroku

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM