人々がこれをどのように解決するか、またはリダイレクトを使用して解決できるかどうかに興味があります。
サイトでよくある問題は、リソース (ユーザーなど) を表すアイコンを持つことであり、このリソースが存在しない場合はデフォルトのアイコンを持つことです。
マークアップでこれを解決したい場合は、非常に簡単です。
# 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
to/images/users/theozaurus.png
は を返す可能性があり302 /images/default.png
ます。次に、テオザウルスがアイコンをアップロードすると、アイコンが返されます200 <unique icon>
ブラウザーはリダイレクトでキャッシュ ヒットを取得しますか? ここで見逃した落とし穴はありますか?