kopia lustrzana https://github.com/simonw/datasette
				
				
				
			Include sha1 hash in /static/app.css URL
This means that when Datasette's CSS changes the new CSS will be loaded even though browsers may have cached the previous version. Closes #154pull/178/head
							rodzic
							
								
									446f4b8322
								
							
						
					
					
						commit
						16dfccb1c5
					
				|  | @ -9,6 +9,7 @@ import sqlite3 | |||
| from pathlib import Path | ||||
| from concurrent import futures | ||||
| import asyncio | ||||
| import os | ||||
| import threading | ||||
| import urllib.parse | ||||
| import json | ||||
|  | @ -45,7 +46,11 @@ connections = threading.local() | |||
| class RenderMixin(HTTPMethodView): | ||||
|     def render(self, templates, **context): | ||||
|         return response.html( | ||||
|             self.jinja_env.select_template(templates).render(**context) | ||||
|             self.jinja_env.select_template(templates).render({ | ||||
|                 **context, **{ | ||||
|                     'app_css_hash': self.ds.app_css_hash(), | ||||
|                 } | ||||
|             }) | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -835,6 +840,13 @@ class Datasette: | |||
|         self.template_dir = template_dir | ||||
|         self.static_mounts = static_mounts or [] | ||||
| 
 | ||||
|     def app_css_hash(self): | ||||
|         if not hasattr(self, '_app_css_hash'): | ||||
|             self._app_css_hash = hashlib.sha1( | ||||
|                 open(os.path.join(app_root, 'datasette/static/app.css')).read().encode('utf8') | ||||
|             ).hexdigest()[:6] | ||||
|         return self._app_css_hash | ||||
| 
 | ||||
|     def get_canned_query(self, database_name, query_name): | ||||
|         query = self.metadata.get( | ||||
|             'databases', {} | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| <html> | ||||
| <head> | ||||
|     <title>{% block title %}{% endblock %}</title> | ||||
|     <link rel="stylesheet" href="/-/static/app.css"> | ||||
|     <link rel="stylesheet" href="/-/static/app.css?{{ app_css_hash }}"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||||
| {% for url in extra_css_urls %} | ||||
|     <link rel="stylesheet" href="{{ url.url }}"{% if url.sri %} integrity="{{ url.sri }}" crossorigin="anonymous"{% endif %}> | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Simon Willison
						Simon Willison