【发布时间】:2020-05-06 02:49:32
【问题描述】:
我是新来的网络应用程序,并尝试编写一个应用程序,该应用程序从数据库中读取菜单项,并通过浏览器的 HTML 页面发送项目的描述和与之相关的图片链接。该应用程序将在本地网络上运行,因此图像将位于“c:\images\01.png”之类的位置。截至目前,创建的页面源类似于
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p> <a href="http://localhost:8000/api/getitensdomenu/33">Bolinho de Aipim</a><img src="01.png" alt="Ícone do Menu" width="42" height="42"></p>
<p> <a href="http://localhost:8000/api/getitensdomenu/32">Bolinho de Bacalhau</a><img src="01.png" alt="Ícone do Menu" width="42" height="42"></p>
</body>
其中 01.png 是与 LAN 服务器上的 go server 应用位于同一文件夹中的图片文件。当然它会显示相同的文件,但这是一个测试。在实际应用中会有图片文件夹,当然每个项目都有对应的图片。
好吧,页面已创建、发送并正确显示,但图像未显示。我相信这是一个 HTML 问题,我不是专家,因为如果我更改任何在线内容的 src 标记(例如,使用 http 指向 Internet 服务器上的图片的链接),则创建的页面能够获取和展示图像正确。
不幸的是,我必须能够在不使用服务器和客户端浏览器将连接到的 LAN 之外的任何资源的情况下解决这个问题。
感谢您的帮助。
【问题讨论】:
-
获取图像的 HTTP 请求将像访问此页面的请求一样到达您的服务器。您必须在您的服务器代码中通过查看调用者请求图像的请求 url 找出,加载图像并返回它。查看 http.ServeMux 或 github.com/gorilla/mux 以获得更详细的信息。弄清楚请求后,您可以使用
http.ServeFile发送图像文件。 -
除了 Burak 所说的,您还可以让 http.FileServer 提供一个包含您的图像的目录(可能还有其他资产,例如 css)
-
感谢您的帮助。我已经尝试这种方法一段时间了。但是,我现在的问题是如何从客户的电话中获取信息以采取适当的行动。我试图自己在网上找到答案,但无法找到。任何人都可以给我指路吗?谢谢。