1

コンテンツの作成後にコンテンツの一部の画像を作成するサイトがあります。コンテンツが作成されてから画像が作成されるまでの間に何をすべきかを理解しようとしています。私の考えでは、元の画像の 404 エラーで表示するカスタム画像を設定できるかもしれません。しかし、lighttpd でこれを行う方法がわかりません。アイデアや代替案はありますか?

編集:問題は、ユーザーがコンテンツを作成しているのではなく、プロセスによって作成されていることです。基本的に、カタログにアイテムを追加し、製品プロバイダーから提供された画像から標準化されたカタログ画像を作成したいと考えています。ただし、プロバイダー側​​のサーバーが遅いために新製品の追加が遅くなることは望ましくありません。そのため、別のプロセスが実行され、利用可能な場合は後でイメージが作成されます。製品を作成するときにシステムにデフォルトのイメージを作成させ、後でプロバイダー提供のイメージからイメージを作成するときに上書きすることができると思います。

4

5 に答える 5

2

クライアント側の別の方法は次のとおりです。

<img src="/images/generated_image_xyz.png" 
    onerror="this.src='/images/default_image.png'; this.title='Loading...';" />
于 2008-12-02T12:10:23.150 に答える
1

タグを HTML で使用<object>し、デフォルトの画像にフォールバックします。

<P>                 <!-- First, try the Python applet -->
<OBJECT title="The Earth as seen from space" 
        classid="http://www.observer.mars/TheEarth.py">
                    <!-- Else, try the MPEG video -->
  <OBJECT data="TheEarth.mpeg" type="application/mpeg">
                    <!-- Else, try the GIF image -->
    <OBJECT data="TheEarth.gif" type="image/gif">
                    <!-- Else render the text -->
     The <STRONG>Earth</STRONG> as seen from space.
    </OBJECT>
  </OBJECT>
</OBJECT>
</P>

(w3.org の例)

于 2008-10-30T22:22:20.770 に答える
0

私があなたの問題を理解しているように:実際の画像が生成されるまで中間画像を表示したいですか?

読み込み中の画像を表示し、AJAX を使用して、その DOM ノードが作成されたときに実際の画像に変更することができます。ゼロから作成することも、よく知られた安定した AJAX ライブラリを使用することもできます。特に好みがない場合は、jQueryをご覧ください。

于 2008-10-30T22:40:50.153 に答える
0

おそらくクライアント側だけでこれを解決できると思います。

Jaspers の回答に基づいて、次のことができます。

<OBJECT data="/images/generated_image_xyz.png" type="image/png">
     Loading..<blink>.</blink>
</OBJECT>

また、CSS を使用して背景をレイヤー化することもできます。

<style type="text/css">
    .content_image { width:100px; height: 100px; 
        background: transparent url('/images/default_image.png') no-repeat }
    .content_image div { width:100px; height: 100px; }
</style>

<div class="content_image">
     <div style="background: 
         transparent url('/images/generated_image_xyz.png') no-repeat" />
</div>

後者のソリューションは、生成された画像に透明度がないことを前提としています。

于 2008-11-20T14:19:28.307 に答える
0

さらに @kentlarsson - Javascript で実行したい場合は、最近このコードを見つけました: http://jquery.com/plugins/project/Preloadhttp://demos.flesler.com/jquery/preloadのデモ/placeholder/彼が示唆するように、「notFound」オプションを使用します。

ただし、lighttpd については、サイト内の 1 つ以上のサブディレクトリを使用してカスタム イメージをセットアップする方法について説明できるほど詳しくありません。

于 2008-10-30T23:11:52.027 に答える