簡體   English   中英

Rails heroku部署jquery和CSS錯誤,在本地設置Amazon s3變量

[英]Rails heroku deploy jquery and css errors, set amazon s3 variables locally

當我推送到heroku時,日志不會報告錯誤,一切似乎都很好。 但是在線生產站點上的css和jquery有點零碎。 因此,我使用rails server -e production啟動了本地服務器,並立即收到錯誤Missing required arguments: aws_access_key_id, aws_secret_access_key的錯誤Missing required arguments: aws_access_key_id, aws_secret_access_key 如何在不進行硬編碼的情況下在本地設置這些? 當沒有報告的錯誤時,生產CSS / JavaScript失敗的可能原因是什么?

在本地設置環境變量安裝gem

# Gemfile
gem 'dotenv-rails'

然后創建一個名為

.env 

並將其放置在與.gitignore文件相同的文件夾/位置中(即,應用程序文件夾的頂部)。

在.env文件內部,將環境變量放入這樣的環境中

aws_access_key_id=1234556
aws_secret_access_key=1234556

現在不要忘記像這樣將.env文件添加到您的.gitignore文件中...

#.gitignore
# Ignore .env (local development environment vairables)
.env

Rails 4.1+具有一組“秘密”密鑰,您可以在config/secrets.yml進行分配:

Rails 4.1在config文件夾中生成一個新的secrets.yml文件。 默認情況下,此文件包含應用程序的secret_key_base,但也可以用於存儲其他機密,例如外部API的訪問密鑰。

這用於在Rails.application.secrets哈希中為您提供一系列值,這些值取決於環境。

因此,您應該做的如下:

#config/secrets.yml
development:
  aws_secret_key:    "x"
  aws_access_key_id: "y"
production:
  aws_secret_key:    ENV["AWS_SECRET"]
  aws_access_key_id: ENV["AWS_ACCESS"]

出現錯誤的原因是因為您正在為production環境調用rails server 由於您在生產中使用上述鍵,因此在開發箱上運行時,如果沒有這些鍵,將會引起問題。

解決此問題的最佳方法是在設置AWS配置(假定為config/environments/production.rb )的任何地方使用Rails.application.secrets.aws_secret_key

雖然它不能直接解決問題,但可以幫助您在developmentproduction之間建立無縫過渡(應該盡可能相似)。


為了解決問題本身,您應該在本地計算機上為aws_secret_keyaws_access_key_id設置ENV變量。

這是在操作系統級別完成的-在Windows中(我們使用的是Windows),您可以使用以下代碼

確保在系統上設置了ENV變量,並且該應用程序應在生產模式下運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM