为了账号安全,请及时绑定邮箱和手机立即绑定

资源被解释为图像但使用 MIME 类型 text/html appengine go 传输

资源被解释为图像但使用 MIME 类型 text/html appengine go 传输

Go
蝴蝶不菲 2021-07-28 17:44:15
更新新版本的 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 路径将被附加到页面上。


查看完整回答
反对 回复 2021-08-02
  • 1 回答
  • 0 关注
  • 298 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信