2016-03-01 30 views
2

如何更換沒有找到圖片通常你會包括圖像與在Symfony的

<img src="{{ asset('location') }}"/> 

但是,如果不存在圖像,404是拋出一個破碎的圖像顯示。如何顯示另一張圖片而不是一張破碎的圖片?有沒有辦法做到這一點在樹枝?我還使用SonataMediaBundle這說明像這樣的圖像

{% path media, 'small' %} 

覺得那裏會是束內的方式來檢查,如果圖像存在,但事實並非如此。

+0

是啊,測試文件是否存在自己寫的代碼 – RiggsFolly

+0

http://stackoverflow.com/questions/14231967/symfony2-checking-if-file-exists幾行 – chalasr

+0

你應該寫你的應用程序,從來沒有顯示不存在的圖像。例如。如果用戶不上傳圖片,請執行'$ user-> setImage('default.jpg');'等 – malcolm

回答

2

嘗試使用的onerror如果你不想來檢查文件是否存在手

<img src="{{ path("image.svg") }}" onerror="this.src='{{path("image.png") }}'"/> 
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>

+0

這對於一般的丟失圖像很有用,但是如果我想在不同的樹枝文件中使用不同的圖像呢? –

+0

@GeorgeIrimiciuc檢查我的編輯。 – Harikrishnan