更新新版本的 go appengine 后,我无法将图像加载到页面中。我不知道我错过了什么,但以前它曾经非常简单。我能够编译代码,但是当我在浏览器上启动应用程序时,我收到以下消息:资源被解释为图像但使用 MIME 类型 text/html 传输:http://[...]/img/myimg.jpg我的应用程序就像这样简单:索引.html<!DOCTYPE html><html><title>Hello</title><head></head><body> <h1>Welcome to my website</h1> <img src="img/myimg.png" /></body></html>应用程序.yamlapplication: myappversion: 1runtime: goapi_version: go1handlers:- url: /.* script: _go_app- url: /img static_dir: img mime_type: image/jpg你好去package helloimport ( "net/http" "text/template")func init() { http.HandleFunc("/", handler)}func handler(w http.ResponseWriter, r *http.Request) { template.Must(template.ParseFiles("index.html")).Execute(w, nil)}该文件说:“每个文件都使用MIME类型,其文件扩展名,除非目录的MIME_TYPE设置覆盖对应先得”,但它不有所作为我是否没有定义在app.yaml文件中MIME_TYPE。这个论坛上有很多相关的问题,但我找不到任何可以有效解决问题的答案。作为说明,我尝试使用不同的图像(jpg 和 png)以确保图像本身没有问题。我还将相同的应用程序(html 和图像)部署到 apache 网络服务器,并且运行良好。
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
您 app.yaml 是错误的,您的 img 处理程序应该是第一个,此时 img/myimg.jpg 将由您的主应用程序处理程序处理,因此是 text/html 响应。
请记住处理程序按照它们定义的顺序匹配,如果您/.*
用作正则表达式,您的主处理程序将捕获所有内容。
此外,您的图像标签应该是绝对的,否则如果您有超过一页的深度,您的相对 img 路径将被附加到页面上。
- 1 回答
- 0 关注
- 298 浏览
添加回答
举报
0/150
提交
取消