通常你会包括带有
<img src="{{ asset('location') }}"/>
但是,如果图像不存在,则会抛出 404 并显示损坏的图像。如何显示另一张图像而不是损坏的图像?有没有办法在树枝上做到这一点?
我还在使用SonataMediaBundle,它显示的图像如下:
{% path media, 'small' %}
认为捆绑包内有一种方法可以检查图像是否存在,但它不存在。
如果您不想事先检查文件是否存在,请尝试使用 onerror
<img src="{{ path("image.svg") }}" onerror="this.src='{{path("image.png") }}'"/>
你可以用重写来做到这一点。在项目目录中创建一个 .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>