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

标签 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..

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

最佳答案

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

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

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

屏幕截图:

enter image description here

关于javascript - Colorbox 将图像显示为二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301967/

相关文章:

javascript - 如何在 node/npm 中创建仅在应用程序内部的服务器或修改传出请求的任何响应正文

javascript - 我在这个 javascript 循环操作中做错了什么?

javascript - 比较与 Canvas 平行的两个图像的颜色值

image - 带有上传图像预览的 Magnific Popup

javascript - Backbonejs 路由器导航功能不触发路由器功能

javascript - 如何使用循环创建多个 Backbone View ?

javascript - Firefox 选项卡拖动导致 Javascript 警报失败

javascript - Edge 浏览器 - iframe.document.open 不起作用

android - 可点击的图像 - 安卓

javascript - Marionette Collection View 多个dom追加