Javascript Coffee脚本未在资产之后加载:我的ActionCable聊天功能的预编译

Javascript Coffee脚本未在资产之后加载:我的ActionCable聊天功能的预编译,javascript,ruby-on-rails,coffeescript,precompile,Javascript,Ruby On Rails,Coffeescript,Precompile,我正在RubyonRails(v5.0.0)站点中构建聊天功能。我让它最终运行起来,但我运行了bundle exec rake assets:precompile,以便将其推向生产 我好像再也不能让它工作了!这很愚蠢 问题 看起来这些文件不再加载了,没有一个脚本正在生产或开发中运行。 现在,当你输入一条评论时,你会得到一个错误,当然,这是因为没有咖啡脚本来接管你的请求 路线 mount ActionCable.server => '/cable' //= require jquery

我正在RubyonRails(v5.0.0)站点中构建聊天功能。我让它最终运行起来,但我运行了bundle exec rake assets:precompile,以便将其推向生产

我好像再也不能让它工作了!这很愚蠢

问题

看起来这些文件不再加载了,没有一个脚本正在生产或开发中运行。 现在,当你输入一条评论时,你会得到一个错误,当然,这是因为没有咖啡脚本来接管你的请求

路线

  mount ActionCable.server => '/cable'
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require cable.coffee
//= require jquery.turbolinks
//= require script.js
//= require bootstrap-sprockets
//= require cable
//= require metronome.js
//= require private_pub
//= require sticky.js
//= require waveform.js
//= require waveform.extensions.js
//= require timeline.js
//= require turbolinks
//= require_self
//= require_tree .
//= require serviceworker-companion
//= require addtohomescreen.js
//= require dragend.js
application.hml.haml

    = action_cable_meta_tag
application.js

  mount ActionCable.server => '/cable'
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require cable.coffee
//= require jquery.turbolinks
//= require script.js
//= require bootstrap-sprockets
//= require cable
//= require metronome.js
//= require private_pub
//= require sticky.js
//= require waveform.js
//= require waveform.extensions.js
//= require timeline.js
//= require turbolinks
//= require_self
//= require_tree .
//= require serviceworker-companion
//= require addtohomescreen.js
//= require dragend.js
cable.coo

# app/assets/javascripts/cable.coffee
# Action Cable provides the framework to deal with WebSockets in Rails.
# You can generate new channels where WebSocket features live using the
#  rails generate channel command.
#
# Turn on the cable connection by removing the comments after the require statements
#   (and ensure it's also on in config/routes.rb).
#
#= require action_cable
#= require_self
#= require_tree ./channels

@App ||= {}
App.cable = ActionCable.createConsumer()
/channels/index.coffee

App.cable = ActionCable.createConsumer("/cable")
jQuery(document).on 'turbolinks:load', ->
  messages = $('#messages')
  if $('#messages').length > 0

    App.global_chat = App.cable.subscriptions.create {
        channel: "ChatRoomsChannel"
      },
      connected: ->
        # Called when the subscription is ready for use on the server

      disconnected: ->
        # Called when the subscription has been terminated by the server

      received: (data) ->
        $('#messages_' + data['chat_room_id']).prepend($(data['message']).fadeIn(400))
        $(document.getElementById('notification').src = 'https://www.jammify.com/metronome_low.mp3';notification.play());

      send_message: (message, chat_room_id, user_id, receiver_id) ->
        @perform 'send_message', message: message, chat_room_id: chat_room_id,  user_id: user_id, receiver_id: receiver_id

      $('.new_message').submit (e) ->
        $this = $(this)
        textarea = $this.find('#message_body')
        chat_room_id = $this.find('#message_chat_room_id')
        if $.trim(textarea.val()).length > 1
          App.global_chat.send_message textarea.val(), chat_room_id.val(), $('#messages_' + chat_room_id.val()).data('user-id'), $('#messages_' + chat_room_id.val()).data('receiver-id')
          textarea.val('')
        e.preventDefault()
        return false
/channels/rooms.咖啡

App.cable = ActionCable.createConsumer("/cable")
jQuery(document).on 'turbolinks:load', ->
  messages = $('#messages')
  if $('#messages').length > 0

    App.global_chat = App.cable.subscriptions.create {
        channel: "ChatRoomsChannel"
      },
      connected: ->
        # Called when the subscription is ready for use on the server

      disconnected: ->
        # Called when the subscription has been terminated by the server

      received: (data) ->
        $('#messages_' + data['chat_room_id']).prepend($(data['message']).fadeIn(400))
        $(document.getElementById('notification').src = 'https://www.jammify.com/metronome_low.mp3';notification.play());

      send_message: (message, chat_room_id, user_id, receiver_id) ->
        @perform 'send_message', message: message, chat_room_id: chat_room_id,  user_id: user_id, receiver_id: receiver_id

      $('.new_message').submit (e) ->
        $this = $(this)
        textarea = $this.find('#message_body')
        chat_room_id = $this.find('#message_chat_room_id')
        if $.trim(textarea.val()).length > 1
          App.global_chat.send_message textarea.val(), chat_room_id.val(), $('#messages_' + chat_room_id.val()).data('user-id'), $('#messages_' + chat_room_id.val()).data('receiver-id')
          textarea.val('')
        e.preventDefault()
        return false
你们还需要别的吗?
看起来整个房间都没装咖啡。

你在服务器上运行过
rake assets:precompile RAILS\u ENV=production
吗?可能是因为
config.public\u file\u server.enabled
中的
config/environments/production.rb
设置为
false
(它可能使用了一个环境变量)。检查此项,如果尚未设置为true,则将其设置为true,然后重试。感谢您的回答,不幸的是,所有建议均无效:(