我有一个启用了资产管道的 Rails 应用程序。该应用程序允许上传需要作为静态资产的徽标。徽标文件是表中的一列。一般来说,这在开发和生产模式下都可以正常工作。来自 app/assets(分别为 public/assets)的文件和位于 public/logos 中的上传徽标都正确地提供给浏览器。
但是如果上传了使用相同文件名的不同徽标,浏览器仍然显示旧版本(开发和生产模式)。但是当我清除浏览器缓存时,它会更新。我想这一定与缓存有关。我认为有一种方法可以使更新文件的缓存过时,但不知道如何。我也不想强制用户使用不同的文件名,以防他们想要上传徽标的修改版本。要求用户删除他们的浏览器缓存也不可行。使用 assets:precompile 任务不是解决方案,因为徽标是在服务器运行时添加的。
尽管我使用了一段时间,但资产管道和缓存对我来说仍然有点神秘。有没有其他人看到过这种行为?
使用 Ruby 1.9.3 在 Rails 3.2.13 上运行。