Colorbox将图像显示为二进制数据

时间:2014-06-19 08:24:39

标签: javascript image backbone.js binary base64

我尝试使用Colorbox使用Backbone.js进行网站构建。我有一个像这样的简单图像标签:

<a class="gallery" href="/document/123"><img class="attachment-preview" src="/document/123" /></a>

url / document / 123显示(简单的png)图像。 123是图像的id,服务器从DB获取base64编码图像,对其进行解码并显示它。当我在浏览器中输入example.com/document/123时,它会正确显示图像,并且图像也会正确显示我粘贴在上面的标记。

然后,当我单击图像时,颜色框打开,只显示我猜的是二进制数据:

�wQH*��:�R��hc�:+{�����d��j���}7u($��@�����[�6Ym}���^(_�i�~�H�>�� etc..

所以我的问题是:这怎么可能?更重要的是:我该如何解决?欢迎所有提示!

1 个答案:

答案 0 :(得分:5)

Colorbox将通过扩展名url自动检测href目标的内容类型。例如,如果url target是具有.jpg,.png或.gif扩展名的文件,则颜色框会将内容显示为图像。网址&#34; / document / 123&#34;将被视为html内容,即使它返回图像。

初始化colorbox插件时,可以通过添加photo:true属性来解决此问题。

$("a").colorbox({photo:true});

<强>截图:

enter image description here