Cache block skipped over

I'm running my local server in production mode and a fragment cache on the front page fails to render at all. I route the front page to the about controller:

  map.index '', :controller => "about", :action => 'front_page'

And the action looks like:

  def front_page     unless read_fragment(:part => 'time')       @time = Time.now     end   end

Finally, app/views/about/front_page.rhtml has at the top:

before <%- cache(:part => "time") do -%>   in the fragment   <%= debug @time %> <%- end -%> after

No cached fragment appears in tmp/cache/localhost:3000/ and when I load the page (yes, I remembered to stop and start the server) I see "before after" without "in the fragment" at all. I'm at a loss -- the cache block is just silently failing to produce anything, and there's nothing in the logs. I've got caches working on other actions, so I know it's not all of caching that's broken.

Any ideas what could be causing this?