IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> go http.FileServer无法识别 favicon.ico -> 正文阅读

[系统运维]go http.FileServer无法识别 favicon.ico

在docker 容器里运行go程序,里边使用到了http.FileServer作为静态文件的代理,访问其它的静态文件都正常,唯独favicon.ico报错。

runtime/debug.Stack(0x974fa5, 0x8, 0xc000058730)
        /home/ubuntu/soft/go/src/runtime/debug/stack.go:24 +0x9f
main.exceptionHandler.func1.1(0xa61ef8, 0xc00037a620, 0xa5c480, 0xc00000ede0)
        /home/ubuntu/images/momotodo/momotodo/src/momotodo.go:729 +0x18b
panic(0x908ba0, 0xe7efc0)
        /home/ubuntu/soft/go/src/runtime/panic.go:965 +0x1b9
main.(*StaticFile).Seek(0xc000049ea0, 0x0, 0x0, 0x976c35, 0xc, 0x200)
        <autogenerated>:1 +0x32
net/http.serveContent(0xa61ef8, 0xc00037a620, 0xc00035b700, 0x97eb45, 0xb, 0x0, 0x0, 0x0, 0xc0000a55f8, 0x7fc1ec63af58, ...)
        /home/ubuntu/soft/go/src/net/http/fs.go:241 +0x1412
net/http.serveFile(0xa61ef8, 0xc00037a620, 0xc00035b700, 0xa5ba20, 0xc00000ed98, 0xc000374d40, 0xc, 0xc000368c01)
        /home/ubuntu/soft/go/src/net/http/fs.go:664 +0x61f
net/http.(*fileHandler).ServeHTTP(0xc0000ec8b0, 0xa61ef8, 0xc00037a620, 0xc00035b700)
        /home/ubuntu/soft/go/src/net/http/fs.go:848 +0x9c
net/http.StripPrefix.func1(0xa61ef8, 0xc00037a620, 0xc00035b600)
        /home/ubuntu/soft/go/src/net/http/server.go:2092 +0x234
        ...

但是在本地却无法复现。遂打断点,断到该文件的请求,看看是怎么处理的,于是乎看到了这样一段代码:

// The built-in table is small but on unix it is augmented by the local
// system's mime.types file(s) if available under one or more of these
// names:
//
//   /etc/mime.types
//   /etc/apache2/mime.types
//   /etc/apache/mime.types
//
// On Windows, MIME types are extracted from the registry.
//
// Text types have the charset parameter set to "utf-8" by default.
func TypeByExtension(ext string) string {
	once.Do(initMime)

	// Case-sensitive lookup.
	if v, ok := mimeTypes.Load(ext); ok {
		return v.(string)
	}

好家伙,是从系统读取的这些数据。我进容器一看,果然没有/etc/mime.types。

那解决的方法就很简单了,在docker运行的地方把这个文件挂载上。

-v /etc/mime.types:/etc/mime.types

再次查询,果然出来了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:37:16  更:2021-08-04 11:39:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 2:36:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码