Rails 3.1中应该在哪里存储上传的文件



当用户上传文件时。在Rails 3.0+中,这些将进入公共/上传。在3.1中,上传的文件是否应该转到应用程序/资产/上传?还是仍然公开/上传?

这在我们的环境中并不是一个真正的问题,因为我们使用的是S3。只是想了解Rails3.1的新目录结构。

你有什么想法?

公共目录,capistrano推荐public/system/

不要被app/assets目录弄糊涂,它通常用于css/js/coffeescript文件,认为这是从3.0到3.1 的最大变化

答案很简单:用户只能访问/public目录。

有一些技巧可以得到cssjs,但对于其他东西,你必须坚持使用/public

一般来说,我把所有的东西都放在/public/assets

添加到标题的答案:

如果使用Carrierwave,临时文件位于系统的/tmp目录中,上载的文件位于$RAILS_ROOT/public下的子目录中,例如$RAILS_ROOT/public/uploads/your-MODEL/。。。

在Rails 3.1中,"assets"目录用于JavaScript和CSS文件,这样链轮就可以在那里拾取它们,并且它们不能直接通过"public"目录访问。。。

  see: assets/javascripts/application.js and assets/stylesheets/application.css  files
  see: http://railscasts.com/episodes/265-rails-3-1-overview

app/assets目录用于CoffeeScript文件(也不可公开访问,因此不是上传的地方)

只有当您有一个文件服务器或网络映射存储时,才可以将上传的文件放入文件系统。。。我通常只是把文件放在数据库本身。

但正如vrsmn所说,不要为此使用资产,资产管道是用于精简css/js/应用程序映像的。

相关内容

  • 没有找到相关文章

最新更新