1

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

在网站上,一个常见的问题是有一个图标来代表一个资源(比如一个用户),如果这个资源不存在,有一个默认图标。

现在说我想在标记中解决这个问题,那么它很简单:

# 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 次相同的图像,只是因为我不想处理预渲染或动态产生标记问题。

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

例如 a GETto/images/users/theozaurus.png可以返回 a 302 /images/default.png。然后当theozaurus上传一个图标时,它会返回200 <unique icon>

浏览器会在重定向时获得缓存命中吗?我在这里错过了什么陷阱吗?

4

0 回答 0