在 Docker 下使用 Rails 和 Actioncable 时,action cable URL 应该设置为什么?
通常它是这样的
config.action_cable.url = "ws://localhost:3000/cable"
但这不起作用。我尝试了一些排列,但我得到的只是
Started GET "/cable" for 172.18.0.6 at 2016-11-22 17:49:37 +0000
Started GET "/cable/"[non-WebSocket] for 172.18.0.6 at 2016-11-22 17:49:37 +0000
Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: close, HTTP_UPGRADE: )
Finished "/cable/"[non-WebSocket] for 172.18.0.6 at 2016-11-22 17:49:37 +0000
My docker-compose.yml file is here .我试过使用单独的电缆图像(注释掉)但没有任何运气。我还没有走那么远,应用程序图像和电缆图像似乎存在冲突,并且 puma 的一个或两个实例只是不断地重新启动。解决这个问题将是一个奖励。
最佳答案
如果您在单独的容器中将 actioncable 作为独立服务器运行,那么您必须为开发环境设置允许的请求来源:
config.action_cable.url = "ws://localhost:28080"
config.action_cable.allowed_request_origins = %r{http://localhost.*}
关于ruby-on-rails - 在 docker 下应该将 actioncable URL 设置为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748539/