【发布时间】:2017-07-22 04:37:09
【问题描述】:
我有一个 Rails 应用程序部署到 Heroku,但我一辈子都想不通为什么它一直想部署到本地。我的前端代码(react native)或后端(即我的 Rails API)中的任何地方都没有 localhost:6379。
这是我在有新广播时遇到的错误:
Completed 500 Internal Server Error in 111ms (ActiveRecord: 47.1ms)
Redis::CannotConnectError (Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)):
Application.yaml:
`gmail_username: "<email_address>"
gmail_password: "<password>"
AWS_ACCESS_KEY: "<access_key>"
AWS_SECRET_KEY: "<secret_key>"
AWS_BUCKET: "<my_s3_app_bucket>"
REDIS_URL: "<redis_url>"`
电缆.yaml
production:
adapter: redis
url: <long_url_address>
host: <host_from_url>
port: <port_from_url>
password: <password_from_url>
Production.rb:
config.action_cable.allowed_request_origins = ["https://lynx-v1.herokuapp.com/"]
config.action_cable.url = "wss://lynx-v1.herokuapp.com/cable"
config.web_socket_server_url = "wss://lynx-v1.herokuapp.com/cable"
(我设置了动作电缆和网络插座只是为了测试哪个有效,无论我使用哪个我仍然得到错误)
/config/initializers/redis.rb
require "redis"
uri = URI.parse(ENV["REDIS_URL"])
$redis = Redis.new(
:url => ENV["REDIS_URL"],
)
我不知道发生了什么。是某种默认值使 Redis 寻找本地主机 6379?我一步一步地按照步骤进行操作,但我不断收到此错误。
【问题讨论】:
-
我配置了ActionCable,根据这篇文章你应该配置redis或者action cable为生产环境。 blog.heroku.com/…
-
我确实遵循了这些步骤。 Cable.yaml 和 production.rb 是我为生产配置的位置,如上所示。虽然仍然收到此错误。我一直在努力解决它。
-
不要在互联网上发送垃圾邮件,而是尝试一个渠道。等待答案,如果您没有得到答案,请尝试另一种方法。
-
这个问题只被问过 2 个地方,当然问题是在等待答案时被调试。请发布与问题解决方案相关的内容。
标签: ruby-on-rails heroku deployment redis ruby-on-rails-5