【问题标题】:Image can not be displayed on page图片无法显示在页面上
【发布时间】:2015-05-06 20:22:38
【问题描述】:

我有一个img标签

 <img data-bind="attr: { src: imageUrl() }" />

我将它绑定到了knockoutjs中的imageUrl()函数。

self.imageUrl = ko.computed(function () {
                return "C:/Users/FC/Desktop/54f46f4613ba6106000d98f7.jpg";
 });

我的桌面上有一张 JPEG 格式的图片。

网址正确,但我无法在页面上显示此图片。无法显示。

有什么问题?

【问题讨论】:

  • 要从本地文件系统访问,您可能需要使用file:// 协议。这在 Web 应用程序中不可用。更好的解决方案是将图像资源放在 webapp 提供的目录中,并在那里链接到它。
  • 看看浏览器是否报404错误。有时它可能会发生,因为文件权限使浏览器无法引用该文件。我只有在 mac 上的经验,但是查看检查器,它会告诉你文件权限是否错误或文件是否找不到。是/是 xampp 中的文件吗?

标签: javascript html asp.net-mvc knockout.js


【解决方案1】:

Javascript 无法访问您的文件系统。将图像放在网络服务器可以看到您的资产并通过 URL 引用它的位置。

【讨论】:

  • 这仍然可以在浏览器中查看,协议缺失
  • @Sphaso self.imageUrl = ko.computed(function () { return "file:\\c:\\users\fc\documents\visual studio 2012\Projects\INDIVIDUAL\INDIVIDUAL\Images\ UploadedImages\1_54f46f4613ba6106000d98f7.jpeg"; });我试过了,但没有用
  • 这不是我的建议,但奇怪的是它不起作用。您在控制台中有任何错误吗?理想情况下,您应该拥有一个为您的资产(js、css、html...)提供服务的 web 服务器(甚至是本地服务器)。然后,您将在存储图像的网站根目录下有一个文件夹。通过这种方式,您可以访问图像,例如“/Content/blabla.jpg”(相对 URL 的示例)。
  • @Sphaso 非常感谢。你是对的,但我必须将图像保存到这个文件夹。我检查了firebug,但没有错误消息
  • @LazyLooser 对不起,我需要检查我的视力。看协议,应该是 file:// 而不是 file:\\
【解决方案2】:

您缺少文件协议:

return "file://C:/Users/FC/Desktop/54f46f4613ba6106000d98f7.jpg"

不过,您不应该从本地文件系统提供资源。考虑使用网络服务。

【讨论】:

  • 我把它放到桌面上试试。实际上,此图像位于我的项目目录中存在的文件夹中。它没有工作
猜你喜欢
  • 1970-01-01
  • 2015-02-12
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多