asset_sync未将资产编译为S3

时间:2014-09-05 12:15:01

标签: ruby-on-rails ruby ruby-on-rails-4 amazon-s3 asset-sync

我正在使用这个tutorial而我正在谈论要运行的部分

bundle exec rake assets:precompile

如果您查看网站,可以看到她显示此命令的输出以及它应该是什么样子。但是,我没有得到那样的答复。我像往常一样得到正常的编译文件(需要提交和推送)。

new file:   public/assets/bootstrap.min-b90c459188f886cf6a00921016ed2104.css
new file:   public/assets/bootstrap.min-b90c459188f886cf6a00921016ed2104.css.gz
new file:   public/assets/bootstrap_and_overrides-e3193dde7df14df59d8c755dbe743f58.css
new file:   public/assets/bootstrap_and_overrides-e3193dde7df14df59d8c755dbe743f58.css.gz

我在S3检查我的水桶,那里也没有。我已经按照本教程去了T,所以我不确定我哪里出错了,但我真的很感激别人的帮助。

提前谢谢。

编辑:所以我推送到heroku看看会发生什么,我的资产链接发生了变化(我的样式表链接到AWS)但它们仍然没有上传到存储桶,所以当发生这种情况时,我的网站当然没有样式。希望这是足够的信息。

1 个答案:

答案 0 :(得分:1)

您需要确保您的AWS密钥位于您的heroku应用中。您可以查看本教程,您必须访问heroku控制台并输入密钥,然后将其定向到heroku应用程序。

https://devcenter.heroku.com/articles/paperclip-s3

此链接也可能有所帮助。 https://medium.com/self-directed-learning/rails-4-heroku-the-asset-pipeline-quandary-9ba1f595102a

在推送并推送到heroku之前,还要在终端中运行此命令。 RAILS_ENV =生产包exec rake资产:预编译

在你的config / envirement / production.rb中确保这是真的。 config.assets.compile = true

如果您要沿着这条路线行进,还要确保您的生产商名称与您的密钥一起列在您的production.rb中,或者放在回形针或载波文件中。

看起来文章使用雾。

      config.fog_credentials = {
:provider               => 'AWS', 
:aws_access_key_id      => 'key', 
:aws_secret_access_key  => 'key',

}   config.fog_directory =' bucket_name'