rails中的公共/资产和app / assets之间的区别是什么?

时间:2015-11-28 23:37:44

标签: ruby-on-rails

Rails指南here

  

"公开的任何资产都将作为静态文件提供   config.serve_static_files设置为时的应用程序或Web服务器   真正。您应该将app / assets用于必须经历某些文件的文件   在服务之前进行预处理。"

我使用的是Rails 4.2.4。没有公共/资产文件夹。这让我想知道一些事情:

  1. "将app / assets用于必须在提供之前进行一些预处理的文件?"
  2. 预处理是什么意思?
  3. 静态资产与其他资产有何不同,使用一个管道而不是另一个管道的性能优势是什么?
  4. 如果4.2.4没有公共/资产文件夹,我甚至需要担心吗?

1 个答案:

答案 0 :(得分:7)

  1. 需要对javascript / css等资产进行预处理 - 例如。缩小,散列用于缓存清除,通过转换器(如coffeescript)等。此类资产应保存在app/assets文件夹中。
  2. 我相信1已经回答了这个问题。
  3. 如生产过程中1所述,通过转发器/缩小器等传递每个资产将非常昂贵且浪费 - 因为这些资产不会动态变化我们可以在预编译期间执行一次并让静态文件服务器或者cdn处理他们的交付。
  4. 在部署中预编译资产时,编译的文件将生成到public / assets文件夹中。
  5. 我建议阅读this article,其中详细介绍了资产管道。