Append a hash ?digest to CSS files for cache-busting #1054
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Similar to python/python-docs-theme#108.
Fix the problems we saw at #1034 (comment) when the CSS file changed but browsers kept the old version cached for 24 hours.
Append a
?digest=hash
to the end of thepydoctheme.css
, computed from the file contents, so when a new CSS file is deployed, the old one is no longer used from the browser cache.For example:
<link rel="stylesheet" type="text/css" href="_static/devguide_overrides.css?digest=951d6a16b747d96c03796069dbeb516764307ae2" />
This is based on how @pradyunsg's Furo theme does it:
https://github.com/pradyunsg/furo/blob/193643fdb6787501195555244f4a9e953ef544bb/src/furo/__init__.py#L149-L161
Thanks @pradyunsg!
Demo
View the source of pages at https://cpython-devguide--1054.org.readthedocs.build/.
Furo's css already has a digest, this PR adds it to
devguide_overrides.css
.Check the colours load in the EOL chart at https://cpython-devguide--1054.org.readthedocs.build/versions/