![MIME 类型 text/html:如何定义以及在何处定义?](https://linux22.com/image/158295/MIME%20%E7%B1%BB%E5%9E%8B%20text%2Fhtml%EF%BC%9A%E5%A6%82%E4%BD%95%E5%AE%9A%E4%B9%89%E4%BB%A5%E5%8F%8A%E5%9C%A8%E4%BD%95%E5%A4%84%E5%AE%9A%E4%B9%89%EF%BC%9F.png)
我在 AskUbuntu 上问了一个相关问题(如何以不同于 *.html 的方式打开 *.htm?)还没有兴趣,所以我用一个更基本的问题来解决同样的问题。
我无法找到在 GNOME 中如何以及在何处分配 MIME 类型text/html
,通常(但并非总是)分配给网页文件(*.html
和*.htm
)。至少有 2 个规则在起作用:它部分与文件扩展名以及文件开头的可变数量的字符相关(在 GNOME 3.28.2 / Ubuntu 18.04 上测试):
$ ls -l empty.html
-rw-r--r-- 1 rphair rphair 0 2019-08-02 16:26 empty.html
$ gio info empty.html | grep standard::content-type
standard::content-type: text/plain
$ cat less-than.html
<
$ gio info less-than.html | grep standard::content-type
standard::content-type: text/html
$ mv less-than.html less-than.junk
$ gio info less-than.junk | grep standard::content-type
standard::content-type: text/plain
$ echo '<html' > less-than.junk
$ gio info less-than.junk | grep standard::content-type
standard::content-type: text/html
我需要知道这个 MIME 类型是在哪里定义的,这样我就可以更改该定义。 (这有点超出了这个问题的范围,但我的目标是将相同 MIME 分类的 *.htm 文件与 Web 编辑器而不是浏览器关联。)
答案1
已安装软件包的现有 MIME 类型在 中定义/usr/share/mime/packages
。普遍接受的 MIME 类型在freedesktop.org.xml
此目录中定义。该数据库的内容在这里定义(freedesktop.org > 规范 > 共享 mime-info-spec)以及添加或修改标准 MIME 类型的过程。
可以通过根据以下方式放置文件来定义自定义 MIME 类型:
- GNOME 帮助 > 为单个用户添加自定义 MIME 类型: 普京
/usr/share/mime/packages
- GNOME 帮助 > 为所有用户添加自定义 MIME 类型: 普京
~/.local/share/mime/packages
如何覆盖标准 MIME 类型(对于相关系统,在 package 中定义shared-mime-info
),特别是text/html
,是相关问题的答案,因此我将在其他论坛的链接线程中解决它。