不要以为我知道我在说什么,因为我是 RoR 的新手,但在遇到问题后,我只是花了最后几个小时阅读资产管道。我将分享一些我学到的东西,这些东西可能有助于你概念化:
public/ 中的任何内容都保持原样,并由 Web 服务器直接作为静态文件服务器。但是,关于公共/资产,有两点值得考虑:
1)他们没有得到预编译的好处,其中包括:
1a) 指纹识别 - 将基于文件内容的 md5 散列附加到文件名,以便文件名在文件更改时更改,从而强制重新加载缓存。如果文件可能会在某天更改(在您的情况下是新版本的蓝图),这将很有用。
1b) 连接 - 预编译器可以/将把多个 CSS 或 JS 文件合并为一个,这使得下载速度更快。(究竟什么文件被编译,多少是可配置的。)
1c) 缩小 - 预编译器删除空格(和其他巧妙的优化)以缩小 CSS/JS 文件的大小。
2) 我仍在尝试解决这部分问题,但是 /app/assets 中是否有某些内容并通过预编译会影响辅助方法是否以及如何工作(您在视图中使用的资产标签、图像标签和 javascript_include 标记等东西) )。
尽管我完全没有资格,但我正在认真考虑在某个地方的 wiki 上创建自己的 Rails Assets 最佳实践页面来开始整理我的想法。我认为它非常缺乏 - 我不得不从很多地方挖掘一些知识,而且人们建议我发现一些令人反感的东西(比如修改配置文件以预编译添加未显示的资产)。