如何修改Rails 5默认secrets文件位置?已误传secrets.yml至GitHub
嘿,我来帮你搞定这个问题!你遇到的核心需求就是修改Rails默认读取secrets文件的路径对吧?下面几个实用方法都能解决:
方法1:修改应用初始化配置
在config/initializers目录下新建一个custom_secrets_path.rb文件(或者修改现有配置文件),添加这段代码:
# 替换默认的secrets文件路径为你的新文件 Rails.application.config.paths["config/secrets"] = ["config/secrets_final.yml"]
这样Rails启动时就会自动加载你指定的secrets_final.yml,而不是原来的默认文件。
方法2:通过环境变量临时/永久指定
如果你不想改动代码,可以在启动应用时通过环境变量直接指定路径:
RAILS_SECRETS_PATH=config/secrets_final.yml rails server
要是想让这个设置永久生效,还可以把这个环境变量加到你的.env文件里(如果用dotenv管理环境变量的话):
RAILS_SECRETS_PATH=config/secrets_final.yml
方法3:升级到Rails Credentials(更推荐)
如果你的Rails版本是6及以上,真心建议换成官方的credentials系统,比传统secrets文件更安全,而且默认就不会被Git追踪。迁移步骤很简单:
- 打开对应环境的credentials文件(比如生产环境):
rails credentials:edit --environment production - 把
secrets_final.yml里的凭证内容复制到打开的文件中,保存退出 - 之后就可以用
Rails.application.credentials.your_credential_key来调用凭证了
⚠️ 最后一定要注意:之前上传到GitHub的旧secrets.yml里的所有凭证都要立即作废并更换,因为已经公开过,存在安全风险!同时确认secrets_final.yml确实已经正确添加到.gitignore里,避免再次踩坑。
内容的提问来源于stack exchange,提问作者dgreen22
相关产品推荐
相关产品推荐

