In function zope.app.file.browser.file.FileView.show() (and z3c.blobfile.browser.file.FileView.show()) file modification date and date from Request Header &quot;If-Modified-Since&quot; are incorrectly compared.<br>Value of file modification date calculate as:<br>
&gt;&gt; lmt = zope.datetime.time(modified.isoformat())<br>type(lmt) == float<br><br>Value of date from Request Header &quot;If-Modified-Since&quot; calculate as:<br>&gt;&gt; mod_since = long(zope.datetime.time(header))<br>
type(mod_since) == long<br><br>As a result - lmt almost always is more than mod_since on some milliseconds. For example:<br>lmt = 1243412922.51<br>mod_since = 1243412922<br><br>--------------<br>My solution this problem<br>
--------------<br>It is necessary to change string:<br>&gt;&gt; lmt = zope.datetime.time(modified.isoformat())<br>on:<br>&gt;&gt; lmt = long(zope.datetime.time(modified.isoformat())<br><br>PS: sorry for my English<br>