Skip to content


Sprockets produces wrong content-type for .woff fonts #366

johan opened this Issue · 5 comments

4 participants


This might be a documentation issue rather than Sprockets' fault per se, but I can't for the life of me figure out how to make Sprockets produce the content-type application/x-font-woff for *.woff files (I saw #296 but didn't manage to repurpose it to a solution), short of patching the actual header assignment in Sprockets::Server::headers, which is surely the wrong way.

Sprockets 2.1.2, which I use with webrick in my local rails 3.2 dev box, produces application/octet-stream, which Chrome Stable (21) wails about in its error console for every web font (*.woff) file loaded with that content-type on every page, which gets old fast:

Resource interpreted as Font but transferred with MIME type application/octet-stream: ...

Things I've tried without much success in the rails app's config/initializers/mime_types.rb (listed here mostly for google benefit to other stranded future developers also seeking solutions in all the wrong places):

Mime::Type.register "application/x-font-woff", :woff, [], %w(.woff)
Rack::Mime::MIME_TYPES['.woff'] = 'application/x-font-woff'
WEBrick::HTTPUtils::DefaultMimeTypes['woff'] = 'application/x-font-woff'

For what it's worth, I tried patching my Rack too but didn't have much luck (possibly some late-night oversight of mine, I suppose).

If this is a docs issue, I'd guessing I'm not the first to stumble on it. :-)


Ah, the interim kludge is to add this to config/initializers/mime_types.rb:

# tell Rack (and Sprockets) about modern font MIME types:
Rack::Mime::MIME_TYPES['.woff'] = 'application/x-font-woff'

and wipe tmp/cache and restart your server for it to take effect.

Is this entirely Rack's bug, or is the over-caching part a Sprockets issue?


Thanks @johan; Chrome whining silenced.


rack issue.

@josh josh closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.