If I run an audit on my sites with Google Chrome, I get this message in the Leverage browser caching section:
The following resources are missing
I just got a similar issue, I discovered the very same setup and code produces a chrome audit warning when trying on my test server at 127.0.0.1, but not on the real server with a real DNS name.
The problem is the "must-revalidate" part of your cache-control directive. Get rid of that, and you should be good to go.
3 hour expiry might not be enough "time" for the yslow/page speed stuff and they might complain about it. I have seen this with static content on my sites with 4 hour expiration & yslow (havent tried with google's stuff).
Most of those want versioned static content with LONG expire times (like 1 year); see here