ruby-on-rails ruby on rails参数错误:“生产”环境缺少“secret_key_base”

zbwhf8kr  于 2023-08-08  发布在  Ruby
关注(0)|答案(2)|浏览(138)

我使用Rails 7.0.6和Ruby 3.2.2。我有一台本地机器和一台远程服务器。当我通过键入以下命令使用Capistrano进行部署时:

cap production deploy

字符串
我得到这个错误:

rake stdout: Nothing written
rake stderr: rake aborted!
ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `bin/rails credentials:edit`


我在遵循这个教程:Deploy Ruby on Rails

我尝试的解决方案:

  • 我在服务器应用程序文件夹中添加了文件名.rbenv-vars,其中包含以下内容:
DATABASE_URL = postgresql://username:pass@127.0.0.1/myapp_production
SECRET_KEY_BASE = secret key here by typing in local machine "bundle exec rails secret"


但那没用

  • 我还输入了终端:
nano bin/rails credentials:edit


然后打开一个包含以下内容的文件:

#!/usr/bin/env ruby
APP_PATH = File.expand_path("../config/application", __dir__)
require_relative "../config/boot"

require "rails/commands"


我加了这行:

secret_key_base = secret_key_here ******


但那也没用有解决办法吗

mjqavswn

mjqavswn1#

默认情况下gitignore中的主密钥
创建simlink和移动主密钥到共享文件夹,如果你使用capistrano

exdqitrt

exdqitrt2#

首先生成密钥:

rails secret

字符串
然后键入:

EDITOR=nano rails credentials:edit --environment production


然后将密钥粘贴到那里并键入:

secret_key_base : key_here


然后提交并推送到github,然后转到服务器端创建这个文件:

nano .rbenv-vars


在应用程序根文件夹中,并添加以下信息:

DATABASE_URL=postgresql://user_name:PASSWORD@127.0.0.1/app_name

RAILS_MASTER_KEY= you'll find the master key in local machine in "config/credentials/production.key

SECRET_KEY_BASE= same as the one you generated using "rails secret"

相关问题