![](/img/trans.png)
[英]Express.js app works fine locally but doesn't work when deployed on Heroku
[英]Javascript not executing when deployed to heroku, but works fine locally
這個問題似乎已經以30種不同的方式被問到了,但我嘗試所有的解決方法都沒有運氣。
在本地運行良好的Rails 4應用程序,但是當部署到heroku(Cedar)時,JavaScript無法執行。 我正在經歷的過程:
1)RAILS_ENV =生產包執行rake資產:預編譯2)git添加,然后提交3)git push heroku master
我還嘗試破壞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很酷,但並不總是與其他人玩得很好。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.