Rails-heroku部署jquery和css错误,在本地设置amazons3变量

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

本文关键字:设置 amazons3 变量 jquery 部署 css 错误 Rails-heroku      更新时间:2023-09-26

当我推送到heroku时,日志不会报告错误,一切似乎都很好。但在线生产网站上的css和jquery的一些部分是错误的。所以我用rails server -e production启动了本地服务器,并立即得到了错误CCD_ 2。如何在没有硬编码的情况下在本地设置这些?当没有报告错误时,生产css/javascript失败的可能原因是什么?

设置环境变量本地安装gem

# Gemfile
gem 'dotenv-rails'

然后创建一个名为的文件

.env 

并将其放置在与.gitignore文件相同的文件夹/位置(即应用程序文件夹的顶部)。

在.env文件中放入类似的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配置的任何位置使用Rails.application.secrets.aws_secret_key(可能是config/environments/production.rb)。

虽然它不会直接解决问题,但它将帮助您在development&production(应尽可能相似)。


要解决问题本身,您应该在本地计算机上为aws_secret_keyaws_access_key_id设置ENV变量。

这是在操作系统级别完成的——在Windows(我们使用的是Windows)中,您可以使用以下内容。

确保在系统上设置了ENV变量,并且应用程序应在生产模式下运行。