2011-01-07 3 views
2

誰かが方法を知っていますか?たとえば、読み込まれた画像が画像ではないことがわかりました。 404エラーが返されましたか?読み込まれた画像が有効でないかどうかを調べる(例:404エラーページ)

エラーが発生した場合は、画像のURLを例えばに設定します。白い画像。

404エラー処理やサーブレットなどのサーバー側の技術を使用することはできません。エラー処理をしないAmazon S3で画像を配信したい場合や、「デフォルトファイル」にリダイレクトする場合です。要求された画像が見つかりませんでした。

+0

この回答を見る:http://stackoverflow.com/questions/92720/jquery-javascript-to-replace-broken-images –

答えて

1

questionの回答が役に立ちます。 jQueryを使用していますが、画像がブラウザに正しく読み込まれていないことを検出するというアイデアはうまく処理されます。

7

ImageクラスはaddErrorHandlerメソッドを持っています。イメージが正しくロードされなかった場合に起動されるエラーハンドラを登録します。このハンドラでは、イメージをデフォルトイメージに設定することはできません。

0

この質問に尋ねられたときにエラー処理の状態がわかりませんでしたが、S3には現在404エラー処理があります。私は、それを必要に応じて親指を生成するために使用します。

  1. セットアップ

  2. セクションをホスティングしている静的なWebサイトの下にリダイレクト規則を追加ホスティング静的なウェブサイトのためのバケツのような:上記の場合不足している画像には

    <RoutingRules> 
        <RoutingRule> 
        <Condition> 
         <KeyPrefixEquals/> 
         <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals> 
        </Condition> 
        <Redirect> 
         <HostName>yoursite.com</HostName> 
         <ReplaceKeyPrefixWith>image/generate/</ReplaceKeyPrefixWith> 
        </Redirect> 
        </RoutingRule> 
    </RoutingRules> 
    

( ie cat.jpg)

http://yoursite.com/image/generate/cat.jpg 

私の場合、それを使ってサムネイルを配信します。ここで

は、ユースケースです:

<img src="http://awsbucketurl.com/thumb_cat.jpg"> 

これは、その後のURLで、私のサイトを呼び出すS3によってトリガ404が発生します。私はそれに 'thumb_'という接頭辞が付いていることを確認して、S3からcat.jpgを取り出し、サイズを変更し、次回のために親指をS3にアップロードし、このセッションのためにブラウザにも配信します。

警告:画像がキャッシュシステムによって呼び出された場合、404の後に新しい画像は受信されず、代わりに欠落した画像が保存されます。