【问题标题】:In Ruby on Rails, what is an "asset"?在 Ruby on Rails 中,什么是“资产”?
【发布时间】:2014-02-09 23:18:58
【问题描述】:

在 Ruby on Rails 世界中什么被视为“资产”?

用户生成的文件(例如用户上传的图片)是否被视为资产?它们应该存储在 Rails 项目的标准文件结构中的什么位置?他们是否应该远离任何与资产相关的目录,例如:

  • 应用/资产
  • lib/资产
  • 公共/资产

相关:The Asset Pipeline

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    通常asset 是浏览器在获取 HTML 页面后加载的任何内容。意思是 javascript、css 和任何图像。但正如您指出的那样,rails 项目中有两种不同的图像类型。

    1) 与您的 CSS 和布局设计相关的图像,这些图像位于 app/assets/images 下 2) 您的用户上传的图片,通常会进入public/systempublic/uploads 文件夹,具体取决于您用于接收上传的内容

    lib/assets(或有时vendor/assets)是您应该放置与您的前端设计相关并由第三方库提供的 js/css/images 的位置。假设你想引入一些 css 或 js 框架,那么你应该放置它。

    最后,public/assets 是当您运行rake assets:precompile 生产任务时,rails 将从app/assetsvendor/assets 文件夹编译您的布局资产。

    简而言之,您的设计内容转到app/assets,而用户上传的内容转到public/system

    【讨论】:

    • 很好的答案!您应该在 Rails 文档中列出作为应用程序一部分的资产与用户提供的资产之间的区别。
    【解决方案2】:

    用户上传的文件不是资产的一部分,绝对应该远离资产相关的文件夹。您应该将它们放在public 目录中的某个位置。我把我的放在public/uploads,这是一个常见的约定。然后您应该忽略 git(或您正在使用的任何 VCS)中的这些文件。

    资产基本上是:javascript、样式表、字体和图像,它们是网站设计本身的一部分,而不是用户上传内容的一部分。

    【讨论】:

    • 我没有听说过public/uploads 作为惯例,这对我有很大帮助。谢谢!