用户上传文件时。在Rails 3.0+中,这些将进入公共/上传。 3.1,上传的文件应该转到app / assets / uploads吗?或者仍然在公开/上传?
在我们的环境中,这不是一个真正的问题,因为我们正在使用S3。只是想了解Rails 3.1的新目录结构。
你有什么想法?
答案 0 :(得分:7)
公共目录,capistrano建议使用public / system /
不要被app / assets目录弄糊涂,它通常用于css / js / coffeescript文件,认为这是从3.0到3.1的最大变化
答案 1 :(得分:3)
嗯,答案很简单:您的用户只能访问您的/public
目录。
只有一些技巧可以获得css
和js
,但你必须坚持使用/public
来获取其他内容。
一般来说,我把所有内容放在/public/assets
答案 2 :(得分:0)
添加到apneadiving的答案:
如果使用Carrierwave,临时文件位于系统的/ tmp目录中,上传的文件位于$ RAILS_ROOT / public下的子目录中,例如: $ RAILS_ROOT /公/上传/ 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文件(也不可公开访问,因此不能放置上传文件)
答案 3 :(得分:0)
只有拥有一个文件服务器或网络映射存储时,才能将上传的文件放在文件系统中...我通常只将这些文件放在数据库中。
但正如vrsmn所说,不要为此使用资产,资产管道用于简化css / js / application图像。