我知道有许多与此主题相关的类似问题,但是我有一个似乎无法找到先前答案的问题。 我的Ruby on Rails代码一点也不出色,但是我遵循了ActionCable的教程,其中包括部署到Heroku。我很容易设法使其在本地计算机(localhost:3000)上完美运行,但是当我部署到Heroku时,ActionCable功能不起作用。
在日志中,没有错误消息,我在浏览器中打开了网络面板,并比较了本地网站和Heroku网站的结果,它们的编码和外观相同。在我的本地网络窗格中,重新加载页面时,有一个名为“电缆”的请求。我认为这是对ActionCable的请求,因为它没有出现在我的Heroku网站的网络窗格中。
我在Heroku网站上安装了Redis-to-go,下面是一些代码,希望对您有所帮助。 (该网站地址已更改为我的网站,可以在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/
如果您需要更多文件或信息,请询问。希望您能提供帮助。