什么是rails asset_sync gem?

时间:2017-10-30 18:00:40

标签: ruby-on-rails amazon-s3

我已经开始使用RoR和S3了,我不清楚资产。

有一个asset_sync gem

https://github.com/AssetSync/asset_sync

有人可以澄清它是什么意思

  

用于同步Rails和S3之间的资产

另外我看到heroku不建议使用它:https://devcenter.heroku.com/articles/please-do-not-use-asset-sync Heroku建议使用CDN而不是asset_sync。

  1. 现在使用CDN而不是asset_sync吗?
  2. 我根本不能使用asset_sync吗?或者我必须在网络应用程序中使用它?
  3. 编译资产的最佳做法是什么?
  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

您想使用Amazon Cloudfront,而不是S3。 S3用于存储文件,在提供静态资产方面不是很好或不够快。

Cloudfront通过缓存为遍布全球的超高速服务器提供资源。您不需要上传资产。

您所做的是在Cloudfront上设置分发,例如:

https://mycdn.cloudfront.net

然后设置您的发行版以使用您的heroku应用程序作为原始服务器。

所以在第一次请求时:

http://mycdn.cloudfront.net/some_asset.png

Cloudfront会将请求转发给:

http://myapp.heroku.com/some_asset.png

并缓存响应,以便任何后续请求将转到那些超快速的边缘缓存位置。

有一点,Cloudfront只允许S3存储桶作为原始服务器,而不再是这种情况。 asset_sync是当时的遗物。

今天将资产上传到S3没有任何意义。更少使用asset_sync,这对于heroku的超级流畅资产管道集成来说不会很好。