#306 closed defect (fixed)
mime.types outdated
Reported by: | aitte.myopenid.com | Owned by: | Sergey Kandaurov |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | nginx-core | Version: | 1.2.x |
Keywords: | mime mime.types | Cc: | |
uname -a: | 2.6.32-279.22.1.el6.x86_64 | ||
nginx -V: |
nginx version: nginx/1.2.7
built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) |
Description
/etc/nginx/mime.types delivers .js files as "application/x-javascript"
According to the RFC (http://www.rfc-editor.org/rfc/rfc4329.txt) it should be "application/javascript" and x-javascript is discouraged by the RFC.
That one definitely needs fixing. Other types in mime.types may need fixing too. This is just the one I know of. It may be time to go through the entire list to verify that it's all correct.
Change History (10)
comment:2 by , 12 years ago
I discovered that .eot is currently registered in mime.types as:
application/octet-stream eot;
This is definitely wrong. It's been officially registered as application/vnd.ms-fontobject.
Combine this with the way that javascript was being served with the deprecated application/x-javascript, and I think it's important that the whole line be re-evaluated to make sure it's correct.
The http://www.iana.org/assignments/media-types site will help with official answers for all registered file types. The rest will have to be found via Google to figure out what the correct mime types for them are.
comment:3 by , 12 years ago
Have a look at the HTML5Boilerplate project; I just discovered that they have an Nginx config sub-project containing the fixes I mentioned and more:
https://github.com/h5bp/server-configs/blob/master/nginx/mime.types
Their config file is good enough that it even deserves to become the official Nginx mime.types file. They're dedicated to doing Best Practices in everything. For instance, the official Nginx mime.types file serves .rss as "application/rss+xml", which is indeed the correct official mime type, but does not work in all browsers. So they went with "application/xml" instead, which is the most widely supported. Their project is full of that kind of attention to detail (their project goal is to do what works best in *every* browser) and is a better mime.types than what's shipped with Nginx.
comment:4 by , 12 years ago
Several other suggestions to add to mime.types:
text/plain md5 sha1;
archive/xz lzma xz;
binary/tdb-garmin-map tdb;
binary/garmin-style typ;
xml/garmin-track-file gpx;
comment:5 by , 12 years ago
I just discovered that the HTML5 Boilerplate project chose to serve OpenType with this invalid MIME type: "font/opentype". It's not legal ("font/*" is not a valid mime type), but turns out that this is the ONLY way to avoid console errors in Google Chrome! All other mime types will make Google Chrome log an error saying that a font was served with an invalid mime type. So yeah, they really take care of the tiniest details over there and it would be a very good idea to look at their project for fixes to your mime.types file.
comment:6 by , 12 years ago
Keywords: | mime mime.types added |
---|
comment:7 by , 11 years ago
Owner: | set to |
---|---|
Status: | new → assigned |
comment:9 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:10 by , 11 years ago
.eot and .js were committed some time ago.
Others MIME types are not something to be committed.
Summary of fixes:
Follow RFC:
application/javascript js;
Add support for WebFonts:
application/vnd.ms-fontobject eot; (http://www.iana.org/assignments/media-types/application/vnd.ms-fontobject)
application/font-woff woff; (http://www.iana.org/assignments/media-types/application/font-woff)
application/x-font-ttf ttf; (this is the most common mime type for this unregistered format)
application/x-font-opentype otf; (same here; this is the most correct type for this unregistered mime type)