如何在Symfony中替换未找到的图像

时间:2016-03-01 13:27:55

标签: php symfony

通常你会用

包含图片
<img src="{{ asset('location') }}"/>

但是如果图像不存在,则抛出404并显示损坏的图像。如何显示另一个图像而不是一个破碎的图像?有没有办法在树枝上做到这一点?

我也在使用SonataMediaBundle来显示如下图像:

{% path media, 'small' %}

想想在包内部会有一种方法来检查图像是否存在,但事实并非如此。

2 个答案:

答案 0 :(得分:2)

如果您不想在手边检查文件的存在,请尝试使用onerror

<img src="{{ path("image.svg") }}" onerror="this.src='{{path("image.png") }}'"/>

答案 1 :(得分:2)

您可以通过重写来完成此操作。在项目目录中创建.htaccess文件。添加以下行。

RewriteEngine On
<FilesMatch "\.(jpe?g|png|gif)$">
    ErrorDocument 404 "/img/default-image.gif"
</FilesMatch>

修改

您可以使用DirectoryMatch来匹配目录。您也可以在其中嵌套FilesMatch

<DirectoryMatch "^/www/xyz/"> <FilesMatch "\.(jpe?g|png|gif)$"> ErrorDocument 404 "/img/default-image.gif" </FilesMatch> </DirectoryMatch>