Gần đây tôi đã triển khai ứng dụng và gặp lỗi máy chủ nội bộ do thiếu secret_key_base sản xuất. Sau những giờ phút thử nghiệm, tôi quản lý để giải quyết vấn đề này với hai phương pháp:Thiếu secret_key_base sản xuất trong đường ray
Phương pháp 1:
tôi tạo ra một secret_key mới với rake secret
và thay thế nó bằng <%= ENV["SECRET_KEY_BASE"] %>
trong secrets.yml
. Triển khai lại ứng dụng và lần này nó hoạt động. Nhưng tôi nghĩ rằng phương pháp này là sai.
Cách 2:
tôi tạo ra một secret_key mới với rake secret
và thêm nó vào environments/production.rb
như config.secret_key_base = 'd1f4810e662acf46a33960e3aa5bd0************************
, mà không thay đổi secrets.yml
(mặc định là production: <%= ENV["SECRET_KEY_BASE"] %>
). Triển khai lại ứng dụng và hoạt động tốt.
Câu hỏi của tôi:
- Những phương pháp là tốt nhất?
- Nếu phương pháp thứ 2 là chính xác, tại sao đường ray không tạo ra secret_key_base trong production.rb theo mặc định?
- Có phương pháp nào khác để làm điều đó không?
Phương pháp rhc này chỉ có thể sử dụng được khi bạn lưu trữ tại openshift.redhat.com? –
Bạn có thể tìm phương thức thích hợp cho từng dịch vụ trong tài liệu của mình. Ví dụ cho heroku bạn có thể kiểm tra trang này: https://devcenter.heroku.com/articles/config-vars – user3631047
Cuối cùng tôi đã kết thúc với một bí mật trên VPS của tôi và đặt nó trong tập tin secrets.yml của tôi. –