2009-08-31 2 views
5

いくつかの設定:<image>タグの背後にある画像のリダイレクトにはどのような影響がありますか?

私たちはいくつかの静止画像を公開しています。しかし、イメージタグ内の別のURLを使ってこれらのイメージを参照できるようにする必要があります。 だから、例えば、我々のようなURLでイメージがあります。

http://server.com/images/2/1/account_number/public/assets/images/my_cool_image.jpg 

をそして、私たちはフロントHTMLにそれを挿入するよう:

<img src="http://server.com/image/2/my_cool_image.jpg"> 

代わりの

<img src="http://server.com/images/2/1/account_number/public/assets/images/my_cool_image.jpg"> 

私たちが思いついた本当にうまくいった解決策は、301のリダイレクトを使うことです。今、私たちのテストではかなり良い結果が得られています(現在の世代のブラウザーもすべて動作します)が、このアプローチには欠けている可能性があるかどうかは疑問です。

EDIT:このアプローチを使用する理由は、リソースを提供するために外部ホストを使用することも計画しているため、この機能をオフにすることができるようにするためです。だから、おそらく唯一の本当の欠点は、リダイレクトを計算するために、第2のDNSルックアップと少しサーバーのオーバーヘッドである

+2

可能であれば、リダイレクトする代わりにURLを書き換えることをお勧めします。 – Kevin

+0

実際のURLではなく代替URLを使用する理由は何ですか? – Gumbo

答えて

1

にアクセスする「デフォルト」方法に加えて

http://client.com/image/3/cool_image.jpg 

だろうでURLどちらもパフォーマンスに影響します。さもなければ、私はこの技術の問題を考えることができません。

+1

ええと、クライアントはもう一度サーバーに往復する必要がありますか?そこには大きな問題があります。 – annakata

13

サーバーラウンドトリップを必要としない別の方法は、HTTPサーバーの"rewrite engine"に相当するものを使用することです。これにより、サーバー構成で、あるURLの要求が、という別のURLの代わりに URLの結果を送信することによって満たされるように指定できます。これは、ブラウザに「いいえ、見に行ってください」と言うよりも効率的です。

2

SEOの可能性があります - 一般的なフォルダ名を持つ長くて複雑なファイル名は、より短い/スナッパーのURLを妨げる可能性があります。

しかし、主な問題は、すべての画像に対して追加のHTTP要求があることです。一般に、パフォーマンスを向上させるためにHTTP要求を試して最小限に抑える必要があります。私はあなたが他の人が言っているように、URLの後ろの長いバージョンに書き換える必要があると思います。

URL全体を最終的なURLに書き換える必要はありません。そして、「のgetImage」スクリプトは、どちらかの設定ファイルを読み込むlonger-アップ役立つ

http://server.com/getImage?id=2&name=my_cool_image.jpg 

:のように書き換える

http://server.com/image/2/my_cool_image.jpg 

:あなたがもう少し柔軟性が必要な場合は、このような画像を書き換えることができserver.com上のnamesファイルまたはclient.comのもう一方のファイル。サーバーへの1回の移動と、サーバー自体のわずかなオーバーヘッドがあり、訪問者には気付かれません。

関連する問題