【发布时间】:2014-02-09 23:18:58
【问题描述】:
在 Ruby on Rails 世界中什么被视为“资产”?
用户生成的文件(例如用户上传的图片)是否被视为资产?它们应该存储在 Rails 项目的标准文件结构中的什么位置?他们是否应该远离任何与资产相关的目录,例如:
- 应用/资产
- lib/资产
- 公共/资产
【问题讨论】:
标签: ruby-on-rails
用户生成的文件(例如用户上传的图片)是否被视为资产?它们应该存储在 Rails 项目的标准文件结构中的什么位置?他们是否应该远离任何与资产相关的目录,例如:
【问题讨论】:
标签: ruby-on-rails
通常asset 是浏览器在获取 HTML 页面后加载的任何内容。意思是 javascript、css 和任何图像。但正如您指出的那样,rails 项目中有两种不同的图像类型。
1) 与您的 CSS 和布局设计相关的图像,这些图像位于 app/assets/images 下
2) 您的用户上传的图片,通常会进入public/system 或public/uploads 文件夹,具体取决于您用于接收上传的内容
lib/assets(或有时vendor/assets)是您应该放置与您的前端设计相关并由第三方库提供的 js/css/images 的位置。假设你想引入一些 css 或 js 框架,那么你应该放置它。
最后,public/assets 是当您运行rake assets:precompile 生产任务时,rails 将从app/assets 和vendor/assets 文件夹编译您的布局资产。
简而言之,您的设计内容转到app/assets,而用户上传的内容转到public/system
【讨论】:
用户上传的文件不是资产的一部分,绝对应该远离资产相关的文件夹。您应该将它们放在public 目录中的某个位置。我把我的放在public/uploads,这是一个常见的约定。然后您应该忽略 git(或您正在使用的任何 VCS)中的这些文件。
资产基本上是:javascript、样式表、字体和图像,它们是网站设计本身的一部分,而不是用户上传内容的一部分。
【讨论】:
public/uploads 作为惯例,这对我有很大帮助。谢谢!