我们在 v3.2 中使用 Rails 的资产管道功能。我们正在本地预编译所有资产并将预编译的资产提交到我们的 Git 存储库中。每次我们运行rake assets:precompile
所生成资产的所有 GZip 压缩版本时,public/assets/
都将其标记为已修改。我怀疑这是因为GZip 文件格式包含一个包含版本号和时间戳的标题。
避免此问题的最佳方法是什么?
我们考虑过:
- 使用turbo-sprockets gem仅编译已更改的资产。这似乎是迄今为止最好的选择。
- 在目标服务器上而不是在本地进行预编译。使部署花费更长的时间,尤其是。频繁部署和不经常更改的资产。
- 不预编译 GZip 压缩资源,而是让 Web 服务器动态压缩静态资源。在 Web 服务器上增加了额外的负载,而且 Sprockets 应该使用比 Web 服务器更高的压缩系数,从而导致下载时间更长。
还有其他选择吗?