图像缓存和重定向以处理默认图像

时间:2012-07-18 14:29:41

标签: ruby-on-rails http caching browser-cache

我很想知道人们如何解决这个问题,或者是否可以使用重定向来完成。

在网站上,常见问题是有一个图标来表示资源(例如用户),如果此资源不存在,则使用默认图标。

现在说我想在标记中解决这个问题然后它非常简单:

# Default for user without an icon
<img src="/images/default.png" alt="theozaurus">

# For user with an icon
<img src="/images/users/theozaurus.png" alt="theozaurus">

然而,在某些情况下,这可能会很痛苦:

  • 预呈现标记(用户可能在创建标记后上传图标)
  • 在浏览器中动态生成标记(如果用户有图标,则发现可能会很昂贵,而使用简单/快速逻辑来生成正确的URL会很好。)

因此解决方案显而易见:

<img src="/images/users/theozaurus.png" alt="theozaurus">

然后,应用程序可以返回默认图标,也可以返回已上传的图标。这是低效的,虽然好像我有一个包含100个这些图标的页面,其中90%是默认图标,我有效地下载了相同的图像90次,只是因为我不想处理预渲染或动态生成标记问题。

如果我使用重定向解决了这个问题,它会工作吗(理智) - 并且缓存仍然有效。

例如,GET/images/users/theozaurus.png可能会返回302 /images/default.png。然后,当theozaurus上传图标时,它将返回200 <unique icon>

浏览器会在重定向上获得缓存吗?我在这里错过了任何陷阱吗?

0 个答案:

没有答案