我正在使用'file:///some_dir/image.jpg'src路径在页面上加载图像。我可以使用此路径在常规选项卡中访问该图像。此外,将页面保存为HTML并使用此路径的图像工作。但是,图像不会加载到实时页面上。在chrome中它显示了alt文本的一部分,在firefox中它显示了一个窄条。我试过改变宽度和高度但无济于事。有什么我想念的吗?
<img title="Click to enlarge" src="file:///Users/Aram/uploads/profile.image.985b0f707d972bf3.4372696242656464696e67616e645465657468696e67437269625261696c436f7665722e6a7067.jpg" class="profile-image">
修改
我注意到我在控制台中收到了这个:
不允许加载本地资源
有什么方法吗?
编辑2:
由于我无法通过http路径访问图像,因此我决定将其作为base64数据读取。对于使用web2py或其他Python框架的任何其他人:
# Load the image data
import os
path = os.path.join(request.folder, 'uploads', filename)
data_uri = open(path, 'rb').read().encode('base64').replace('\n', '')
data = 'data:image/png;base64,%s' % data_uri
return html.IMG( _src=data, _class='profile-image', _title='Click to enlarge' )
答案 0 :(得分:4)
不允许网站在用户的计算机上使用本地文件。使用html文件目录中的相对路径。
您还可以直接编码和嵌入图像:
如何嵌入已编码的内容:http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html Python编码说明:http://www.daniweb.com/software-development/python/code/216635
答案 1 :(得分:2)
问题是您正在尝试直接从客户端计算机加载文件。浏览器阻止了这一点。
您可以在此处阅读详细信息:
http://en.wikipedia.org/wiki/Same_origin_policy
它被称为原始政策。它可以防止恶意站点直接从客户端计算机上加载文件。尝试使用页面中的相对路径来显示图像。
在某些情况下(很少见)我使用轻型网络服务器来托管网站,以便我可以从服务器加载文件(而不是让它从浏览器看到的内容,作为客户端计算机)