2008-10-30 77 views
1

我有一个网站在创建内容后为某些内容创建图像。我试图找出在内容创建和图像创建之间要做什么。我的想法是,我可能会设置一个自定义图像显示在原始图像上的404错误。但是,我不确定如何使用lighttpd执行此操作。任何想法或选择?如果找不到图像,显示一些图像的自定义图像 - Lighttpd

编辑:问题是用户不是创建内容的用户,而是由进程创建的。基本上我们将项目添加到目录,我们希望从产品提供商提供的图像创建标准化的目录图像。但是,我不希望提供商一端的服务器速度较慢,以减慢新产品的添加速度。因此,一个单独的过程会在以后创建图像,如果可用的话。我想我可以让系统在创建产品时创建一个默认图像,然后在我们从提供商提供的图像创建图像时覆盖它。

回答

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例)

0

当我明白你的问题:你想,直到真正形象已经产生,显示中间图像?

您可以显示加载图像和使用AJAX的被创建时改变DOM节点到真正图像。你可以从零开始编写它,或者使用任何已知和稳定的AJAX库,如果你没有自己的偏好看看jQuery

0

我想你可以在客户端单独解决这个问题。

基于雅斯贝尔斯的答案,你可以这样做:

<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> 

后者的解决方案假定你没有任何透明度在您的生成的图像。

1

客户端上的另一种方法是要做到:

<img src="/images/generated_image_xyz.png" 
    onerror="this.src='/images/default_image.png'; this.title='Loading...';" /> 
+0

非常好,谢谢 – floribon 2014-10-30 00:34:52