View Shtml Updated
Imagine you update a file called sidebar.inc that is included in your index.shtml. You upload the new sidebar. You press F5. Nothing changes. You press Ctrl+F5. Still nothing. Why?
Scenario A: Browser Aggressive Caching
Browsers assume that assets like CSS, JS, and even HTML (especially .shtml) don’t change often. Chrome, Firefox, and Edge will store a copy on your hard drive. When you visit the URL, the browser serves the cached copy without even asking the server.
Scenario B: Server-Side Bytecode Cache
Some web servers (especially with modules like mod_cache or through reverse proxies like Varnish) store the output of the SHTML processing. Even if your .shtml file changes, the server serves the old rendered HTML from memory. view shtml updated
Scenario C: The "Included File" Blind Spot
You update an included .html fragment, but the parent .shtml file’s timestamp hasn’t changed. Many servers check the parent file’s last-modified date, not the includes. As far as the server knows, the .shtml file hasn’t been touched, so it sends cached versions.
wget --no-cache --no-http-keep-alive --delete-after https://www.yoursite.com/index.shtml -O -
These commands fetch the SHTML fresh from the server and print the raw output to your terminal. If the output here is updated but your browser is not, you have a browser cache problem. If the output here is also stale, you have a server cache or SSI configuration problem. Imagine you update a file called sidebar
Enable XBitHack so included files' timestamps are checked:
Options +Includes
XBitHack full
Restart Apache after changes.
Use curl to compare server responses before/after changes:
curl -I https://yoursite.com/page.shtml
Look for Last-Modified — it should update when content changes. These commands fetch the SHTML fresh from the
Touch the parent SHTML file (update its modification time):
touch index.shtml
Or, if you have SSH access:
find /path/to/webroot -name "*.shtml" -exec touch {} \;