【发布时间】:2013-12-04 22:06:40
【问题描述】:
我正在将我的 rails 3.2.14 应用程序部署到 2 个不同的服务器上,它们前面有一个负载平衡器。这些资产目前正在服务器上进行预编译(通过 capistrano 部署)。
由于某种原因,application.js 文件上的指纹在两个服务器之间是不同的。源文件是相同的。如果我从 application.js 中删除 //= require_tree . ,那么它们都会神奇地拥有相同的指纹。
我遇到过一些提到这个问题的帖子,但从未真正解决根本原因:
- https://github.com/sstephenson/sprockets/issues/158#issuecomment-1837340
- https://github.com/rails/rails/issues/2569#issuecomment-1879181
我试图避免在本地预编译资产以作为解决此问题的一种方式(至少现在......)。
【问题讨论】:
-
您可以尝试在
application.js中单独列出每个文件吗?我想知道require_tree是否将订单委托给文件系统,并且无论出于何种原因,您的两台服务器都以不同的顺序返回其资产目录的内容。 -
我认为你可能是对的。明天试试。谢谢。
标签: ruby-on-rails asset-pipeline