Rails 4关于heroku /资产编译的JS生产问题

时间:2014-02-25 23:54:28

标签: javascript ruby-on-rails heroku asset-pipeline

未捕获的ReferenceError:未定义图表

对于JS无法正常工作的所有地方,我会根据尝试读取的JS文件收到类似的错误。

在开发过程中,我所有的JS都在正确地阅读和执行。在生产中,一些JS不是。这是我的application.js文件,其中包含哪些有效,哪些无效。

的application.js

//= require jquery # working
//= require bootstrap.min # working
//= require jquery_ujs # working
//= require turbolinks # working
//= require jquery.ui.all # working
//= require jquery.sidr.min # working
//= require jquery_timepicker_addon # working
//= require infobox # working
//= require buttons # not working
//= require tooltip # not working
//= require deliveries # not working
//= require Chart# not working
//= require jquery-addressPicker # working
//= require_tree .

我运行RAILS_ENV =生产包exec rake资产:预编译 我最近读了一篇博客文章,建议运行rake资产:清洁资产:预编译,但没有解决问题

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 = false
config.assets.js_compressor = :uglifier
config.assets.digest = true
config.assets.version = '1.0'
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.assets.compile = false

非常感谢有关如何调试此问题的任何帮助!

deliveries.js.coffee是我自己编写的唯一文件。其他人都来自外部图书馆。

jQuery ->
  mixes = $('#order_mix_id').html()
  $('#order_job_id').change ->
    job = $('#order_job_id :selected').text()
    escaped_job = job.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
    options = $(mixes).filter("optgroup[label='#{escaped_job}']").html()
    if options
      $('#order_mix_id').html(options)
    else
      $('#order_mix_id').empty()

1 个答案:

答案 0 :(得分:1)

infobox.js文件中的语法错误导致超出它的文件无法正确定义我在代码中调用的某些变量,导致未捕获的引用错误。我仍然不确定为什么在此文件之后有1个文件继续正常工作。

的application.js

//= require jquery
//= require bootstrap.min
//= require jquery_ujs
//= require turbolinks
//= require jquery.ui.all
//= require jquery.sidr.min
//= require jquery_timepicker_addon
//= require buttons
//= require tooltip
//= require deliveries
//= require Chart
//= require jquery-addressPicker
//= require_tree .