【问题标题】:Deploying a Rails app at heroku with its assets being located at Amazon S3在 heroku 部署 Rails 应用程序,其资产位于 Amazon S3
【发布时间】:2015-09-10 12:48:47
【问题描述】:

我正在尝试将 Rails 应用服务器作为其在 S3 上的资产。我没有使用任何宝石,因为想要手动完成以更好地理解该过程。关于提供静态资产的问题是:

  1. 我应该将哪些资产上传到我的 S3 存储桶:从 my_app/assets 还是从 my_app/public/assets?
  2. 如果是第二个选项,这意味着我必须先预编译它们,对吗?然后上传整个文件夹 my_app/public(或 my_app/public/assets?)?
  3. 由于现在我在 heroku 上部署网站,并且在 heroku 上的 repo 的最大大小是 300Mb,而且我的资产的大小要大得多,我应该怎么做以及应该怎么做应用程序以某种方式“理解”其资产位于 S3,因此当我说“git push heroku master”时,它不会从其 my_app/assetsmy_app/public/ folder 上传所有资产?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 heroku amazon-s3


    【解决方案1】:

    您需要更改 Rails 配置中的 config.action_controller.asset_host 选项。看看http://guides.rubyonrails.org/configuring.html#rails-general-configuration

    您确实需要预编译资产并将它们同步到 S3。记得使用RAILS_ENV=productionasset_sync gem 是查看然后手动复制的好地方。

    【讨论】:

    • 我的第三个问题怎么样?
    • 对不起,如果我的回答不清楚。当您创建或设置 Rails 应用程序时,预编译资产所在的路径会被 git 忽略。因此,它不会被推送到 Heroku,并且你的整体 repo 大小应该低于 300MB。如果您想在 git 中跟踪大型资产文件,我建议您查看 git-lfs.github.com
    • 但问题是我正在谈论的大于 300 Mb 的文件夹是 my_app/assets
    • 看看我在之前评论中提到的 Git 大文件存储。人们通常不会将大文件提交到 git 存储库。顺便说一下,Heroku 的 repo 大小限制是 1GB devcenter.heroku.com/articles/limits#git-repos
    • 我的意思是免费的heroku帐户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多