Hi,
We've had similar problems sometimes and traced the problem back to a css or javascript template which was called in the page template - so the css or javascript is inline in the page. The css/javascript template sets a header using either the ldHeader(), ldSetContent() or ar('loader')->content() methods. If this template is called inline after the normale text/html header is set, it will override this, but only if caching is enabled.
The problem is that if you enable caching, then php's output buffering is started. This means that when you get to the css/javascript template no output has been sent to the browser yet, it is buffered. So php's headers_sent() method returns false and Ariadne's header methods will happily change the content-type header. If caching is not enabled, by the time you get to the inline css or javascript output has been sent to the browser, headers_sent() will return true and Ariadne's header methods will silently skip the headers.
The solution in this case depends on the exact use case. You can either remove the inline css/javascript or remove the content-type headers from them or as a last resort you might set the content-type header back to text/html after inlining the css/javascript.
We're currently debating whether or not Ariadne's header methods ( ldHeader, ldSetContent, ar('loader')->content(), etc. ) should fail silently. This is something left over from the early Ariadne days when this still seemed like a good idea... but to change it now may break quite a lot of ariadne sites.
Hope this helps,
Auke van Slooten
Muze
PS. when I access the above URL it sends the content-type as text/css, so it does seem like what I described is the problem here.