Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在部署到heroku时不执行,但在本地运行良好_Javascript_Heroku_Ruby On Rails 4 - Fatal编程技术网

Javascript在部署到heroku时不执行,但在本地运行良好

Javascript在部署到heroku时不执行,但在本地运行良好,javascript,heroku,ruby-on-rails-4,Javascript,Heroku,Ruby On Rails 4,这个问题似乎被问了30种不同的方式,我尝试了所有的解决方法,但都没有成功 本地运行良好的Rails 4应用程序,但部署到heroku(Cedar)时,javascript不会执行。我正在经历的过程: 1) RAILS\u ENV=生产包执行rake资产:预编译 2) git添加,然后提交 3) git推送heroku主机 我还尝试过在heroku和我的本地机器上重击资产 Production.rb config.cache_classes = true config.eager_loa

这个问题似乎被问了30种不同的方式,我尝试了所有的解决方法,但都没有成功

本地运行良好的Rails 4应用程序,但部署到heroku(Cedar)时,javascript不会执行。我正在经历的过程:

1) RAILS\u ENV=生产包执行rake资产:预编译 2) git添加,然后提交 3) git推送heroku主机

我还尝试过在heroku和我的本地机器上重击资产

Production.rb

  config.cache_classes = true

  config.eager_load = true

  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  config.serve_static_assets = true

  config.assets.compress = true

  config.assets.js_compressor = :uglifier
  config.assets.css_compressor = :sass

  config.assets.digest = true

  config.assets.precompile += %w( '.woff', '.eot', '.svg', '.ttf' )

  config.active_support.deprecation = :notify

  config.log_formatter = ::Logger::Formatter.new
application.rb

config.assets.version = '4.0'

config.assets.enabled = true

config.before_configuration do
  env_file = File.join(Rails.root, 'config', 'local_env.yml')
  YAML.load(File.open(env_file)).each do |key, value|
    ENV[key.to_s] = value
  end if File.exists?(env_file)
end

config.action_mailer.delivery_method   = :postmark
config.action_mailer.postmark_settings = { :api_key => ENV['POSTMARK_API_KEY']}

config.assets.initialize_on_precompile = false

config.middleware.use Rack::Attack
我还尝试添加config.assets.compile=true

application.js

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require masonry/jquery.masonry
//= require masonry/jquery.imagesloaded.min
//= require masonry/jquery.infinitescroll.min
//= require masonry/modernizr-transitions
//= require underscore
//= require gmaps/google
//= require_tree .
当我在heroku上运行应用程序时,我可以通过开发人员工具在中看到javascript:


…但是js没有执行。我哪里出错了?

尝试将
/=require Turbolinks
移动到application.js的最底层,看看这是否有帮助。此外,您可以尝试关闭TurboLink。Turbolinks很酷,但并不总是与他人友好相处


希望这有帮助

没问题。很乐意帮忙!