当前位置: 首页 > 知识库问答 >
问题:

Rails 4.2.3 secret_key_base未从 secrets.yml 中设置,用于开发/测试环境,所有其他变量均已正确设置

高修伟
2023-03-14

我正在运行一个Rails 4.2.3应用程序,该应用程序在部署时在生产环境中运行,并通过Heroku设置环境变量。然而,我的开发和测试环境突然开始出现以下错误:

DEPRECATION WARNING: You didn't set `secret_key_base`. Read the upgrade documentation to learn more about this new config option. (called from service at /Users/Benjamin/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138)

根据我在StackOverflow和其他网站上找到的所有信息,这可能与我的秘密有关。yml文件:

development:
  secret_key_base: LONG-KEY

test:
  secret_key_base: LONG-KEY

我试过用重置这些键

rake secret

任何帮助都将不胜感激。

共有2个答案

袁文景
2023-03-14

这不太可能是你的问题,但我在这个问题上花了几个小时,这也给了我同样的错误消息“secret_key_base”没有为生产rails服务器启动设置。我正在运行Rails版本。4.2.5.1,红宝石版本。2.3.0,WEBrick 1.3.1,开发和生产服务器在CentOS 6.6 Linux机器上实验性运行。我的错误是一个完全新手的事情..按照Rails文档和其他Stackoverflow报告,我已经按照步骤为生产配置了SECRET_BASE_KEY,并且正在使用secrets.yml文件,使用环境变量来设置密钥。但是我用以下代码启动了我的生产服务器:

bin/rails服务器--绑定=0.0.0.0-p 3000-e=生产

这是错误的。缩写“-e”参数没有等号。但是我得到的错误是因为secrets.yml文件中的代码在寻找一个叫做“=production:”的东西,标签是“production:”的。在生产模式下启动服务器的正确表述当然是:

bin/rails服务器--绑定=0.0.0.0-p 3000-e生产

另一个线索是,服务器报告“config.eager_load”被设置为nil,而实际上它被配置为在../config/环境/production.rb文件。

希望这对某人有所帮助。我对Rails Ruby完全是个新手,但我终于有了一个运行在生产模式下的测试服务器,并按预期应用了各种配置设置。

西门高歌
2023-03-14

当你说你已经尝试用rake秘密重置它们时,你是什么意思?你从控制台将键复制并粘贴到secrets.yml正确的位置并保存?只要两个键都在里面,至少有30个字符长(在你使用rake秘密的情况下,它们是128个字符长),你就应该都设置好了。我假设你的secrets.yml文件位于config/中。

此外,弃用警告是警告而不是错误。只要密钥在 secrets.yml 中,就不必执行任何其他操作。运行耙子秘密并用新密钥替换密钥是不必要的,只要你有密钥(至少30个字符),密钥是什么都无关紧要。

希望这有所帮助。如果您仍然有困难,发布运行时错误,希望它能提供更多关于错误的见解。

 类似资料:
  • 我有一个预请求脚本,它在每次生成请求时递增一个环境变量以生成不同的ID。此外,我有一个运行程序多次调用此请求: 但是,我注意到在运行期间,环境变量不会更新,至少在环境选项卡中是这样: 但我监控控制台日志中的变量,它正确递增: 我的问题是,如果我在所有请求结束之前过早停止运行程序,环境变量不会注册所有已执行的集合,因此它会保留执行开始时的值。这可能是一个已知的问题,也可能只是我以错误的方式使用工具,

  • 问题内容: 我在运行show时有一个file.sh:未设置TERM环境变量。 问题答案: 您可以看到它是否真的没有 设置 。运行命令。 如果没有,则可以这样设置:

  • 当我跑步时 $ionic cordova构建android 构建失败,出现此错误: Cordova build android找不到ANDROID_HOME环境变量。尝试设置它 尽管当我跑步时: 科尔多瓦要求 我得到以下结果: android的需求检查结果: Java JDK:已安装1.8.0 Android SDK:安装正确 Android目标:安装android-29、android-28、a

  • 在为基本GET服务运行Java集成测试时,我们的应用程序代码无法检索环境变量。然而,当我们运行应用程序本身时,它可以毫无问题地检索变量。 我们正在开发一个Mac(el captiain)与intellij作为我们的IDE。我们已经导出了bash_profile中的变量(例如导出ORACLE_URL="*************").我们可以在设置和刷新后对变量进行回声。 我们完全搞不懂为什么它们在

  • Yii 2 官方兼容 Codeception 测试框架, 你可以创建以下类型的测试: 单元测试 - 验证一个独立的代码单元是否按照期望的方式运行; 功能测试 - 在浏览器模拟器中以用户视角来验证期望的场景是否发生 验收测试 - 在真实的浏览器中以用户视角验证期望的场景是否发生。 Yii 为包括 yii2-basic 和 yii2-advanced 在内的应用模板脚手架提供全部三种类型的即用测试套件

  • 使用 Online Editor 对 Weex 尝鲜是一个不错的选择,但如果你想更专业的开发 Weex,本节会教你如何搭建本地开发环境进行 Weex 开发。 安装依赖 Weex 官方提供了weex-cli 的脚手架工具来辅助开发和调试。 首先,你需要 Node.js 和 Weex CLI。 安装 Node.js 方式多种多样,最简单的方式是在 Node.js 官网 下载可执行程序直接安装即可。 更