Sorry for my perseveration on the topic.
I'm using a /uv index page for my repositories. After login, the index page
is not expired, and I can only see the Admin entry from the top navigation
bar until after a "hard" reload with Ctrl+F5.
So I tried to to generate a "login-time-sensitive" ETag. This worked well
with the "cexpire" field from the "user" table (which is actually the login
time, shifted to the future by one unit of the "cookie-expire" setting).
But as there's serial cache expiration checks, an ETag cache miss is
immediately caught by a Last-Modified cache hit (no matter whether or not
the Fossil executable mtime is used to limit the age of the Last-Modified
I'm not sure if this can be solved to work well for both web UI pages (ETag
preferred) and "static" files downloaded via scripts (Last-Modified
One possible solution may be to include the "cexpire" field in ETag
calculation, drop the If-Modified-Since handler, but still return a
Like this, wget and simple scripts can still do their own If-Modified-Since
cache checks based on HTTP HEAD requests, and use the returned
Last-Modified date to adjust file time stamps. Given that the time stamps
of unversioned files can be changed arbitrarily, and may not be 100%
accurate anyway, this could make a good compromise.
fossil-users mailing list