Ruby on Rails ActionCable работает локально, а не на герою - PullRequest
0 голосов
/ 14 января 2019

Я знаю, что есть много похожих вопросов, связанных с этой темой, но у меня есть проблема, на которую я не могу найти предыдущий ответ. Мой код на Ruby on Rails не очень хорош, но я следовал учебному пособию для ActionCable, которое включает развертывание в Heroku. Мне легко удалось заставить его работать на моем локальном компьютере (localhost: 3000), однако при развертывании на Heroku функция ActionCable не работает.

В журналах нет сообщений об ошибках, и я открыл сетевую панель в своем браузере и сравнил результаты моего локального сайта и сайта Heroku, которые закодированы и выглядят одинаково. На панели локальной сети при перезагрузке страницы появляется запрос, называемый «кабель». Я предполагаю, что это запрос ActionCable, поскольку он не отображается на панели сети моего веб-сайта Heroku.

У меня установлен Redis-to-go на моем сайте Heroku, и вот часть кода, который, я надеюсь, поможет. (Адрес сайта был изменен на my-website для размещения на SO)

production.rb

Rails.application.configure do
  ActionCable.server.config.disable_request_forgery_protection = true
  config.action_cable.url = "wss://my-website.herokuapp.com/cable"
  config.web_socket_server_url = "wss://my-website.herokuapp.com/cable"
  config.action_cable.allowed_request_origins = ['https://my-website.herokuapp.com', 'http://my-website.herokuapp.com']
  ...
end

development.rb

Rails.application.configure do
  config.action_cable.url = "ws://localhost:3000/cable"
  ...
end

cable.yml

development:
  adapter: async

test:
  adapter: async

production:
  adapter: redis
  url: redis://redistogo:3d45015b67ecc78822bc97ba8124efb7@spinyfin.redistogo.com:10128/

Если вам нужны дополнительные файлы или информация, просто спросите. Я надеюсь, что вы можете помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...