rails7: .env 根据环境加载
根据不同的环境加载不同的配置
安装
添加
dotenv-rails
到项目中
gem 'dotenv-rails'
添加 .env
- .env
- .env.production (注意要添加到 .gitignore 文件中)
REDIS_URL=redis://4Hw$abc@localhost:6379/1
获取
ENV.fetch('REDIS_URL')
.gitignore
虽然并不推荐将
.env.production
写出来,但这样很方便。
# Ignore all environment files (except templates).
/.env*
!.env.production
!/.env*.erb
启动不同环境
rails c
: 普通的 development 环境RAILS_ENV=production rails c
: 生产环境
其它信息
.env 文件通常不建议在生产环境中使用,因为它可能包含敏感信息,而且在生产环境中直接使用.env文件的方式可能存在一些安全风险。
在上面的Gemfile配置中,groups: [:development, :test] 意味着 dotenv-rails gem 只会在开发环境和测试环境中加载。这是为了确保在生产环境中不会加载.env文件,从而减小泄漏敏感信息的风险。
在生产环境中,通常会使用其他方式来设置环境变量,例如通过服务器的环境变量、配置管理工具或者专门的环境变量管理服务。这样可以更加安全地管理生产环境中的配置信息。
如果你在生产环境中也想使用.env文件,可以将其配置为生产环境可用,但要确保 .env 文件中的敏感信息得到了适当的保护,比如使用加密或其他安全措施。