我的回购对于Heroku来说太大了,大约500mb。这是由于app/assets/images
文件夹中的大量图像造成的。我最近尝试将我的图像同步到S3,而不是将它们存储在我的仓库中。
我使用gem asset_sync
来同步文件和.slugignore
文件以强制Heroku忽略资源文件,所以现在回购约为70mb,但仍然存在问题。现在文件不在Heroku的回购中,这意味着image_path
无法找到该文件,因此将image_path "image.png"
与/images/image.png
关联而不是{{1}一个在S3中不存在的文件。
如何解决这个问题?
使用/assets/image.png
从Heroku中删除所有资源并将所有图片指向S3会导致.slugignore
链接到image_path "f.png"
而不是http://s3.com/images/f.png
。
请注意,使用绝对路径有效。 http://s3.com/assets/f.png
,但是rails并没有在文件后面添加摘要。
image_path "/assets/f.png"
4.0.11
1.1.0
https://gist.github.com/oleander/2699ce91be6cfbf8b90a .slugignore
https://gist.github.com/oleander/39e1ddeb60e5f697e6b1 我目前正在使用此快速修复程序强制rails使用我的图像的绝对路径。
config/environments/production.rb
答案 0 :(得分:1)
忽略heroku上的assets文件夹与你无关。问题是asset_sync默认映射到存储桶的根目录,但是您的资产位于存储桶中的资产子文件夹下。要解决此问题,请在production.rb中添加资产前缀。
config.assets.prefix = "/assets"