通常你会用
包含图片<img src="{{ asset('location') }}"/>
但是如果图像不存在,则抛出404并显示损坏的图像。如何显示另一个图像而不是一个破碎的图像?有没有办法在树枝上做到这一点?
我也在使用SonataMediaBundle来显示如下图像:
{% path media, 'small' %}
想想在包内部会有一种方法来检查图像是否存在,但事实并非如此。
答案 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>