【问题标题】:Precompiling uploaded assets预编译上传的资产
【发布时间】:2011-12-29 01:41:11
【问题描述】:
我有一个 Rails 3.1 应用程序,用户可以在其中上传图片。我将它们存储在 /assets/images 中,因为这是 image_tag 查找的路径,而不是 public/images。
在开发中一切正常,但我部署到 Heroku,它给了我这个错误:
ActionView::Template::Error(image_name.jpeg 未预编译)
处理这种情况的正确方法是什么?有没有办法在上传后编译图像或者我应该将它们存储在其他地方?
【问题讨论】:
标签:
ruby-on-rails
heroku
assets
precompiled
【解决方案2】:
您是否使用carrierwave 来上传图片?您可以使用载波相当容易地将它们存储在亚马逊 S3 上。 Carrierwave instructions 其他解决方案也可以轻松访问 S3 存储。
Heroku 不会让您将文件存储在文件系统中。运行
RAILS_ENV=production bundle exec rake assets:precompile
在本地编译您的资产,添加到 git,然后推送到 heroku,但是您以后无法通过 heroku 上的应用程序添加图像。如果您将它们上传到/temp 文件夹,它们将在那里停留一小段时间,或者直到您重新部署/更新您的代码,我相信。