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

使用<object>HTML 中的标记并回退到默认图像。

<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

除了@kentlarsson - 如果你想通过 Javascript 来做,我最近发现了这个代码:http: //jquery.com/plugins/project/Preload和http://demos.flesler.com/jquery/preload的演示/placeholder/按照他的建议执行 - 带有“notFound”选项。

不过,我对 lighttpd 的了解还不够,无法告诉您如何在站点中设置具有一个或多个子目录的自定义图像。

于 2008-10-30T23:11:52.027 回答
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

据我了解您的问题:您想在生成真实图像之前显示中间图像?

您可以显示加载图像并使用 AJAX 在创建该 DOM 节点时将其更改为真实图像。您可以从头开始编写它或使用任何众所周知且稳定的 AJAX 库,如果您没有自己的偏好,请查看jQuery

于 2008-10-30T22:40:50.153 回答