mirror of
https://github.com/nicoburns/blessed-rs
synced 2024-11-22 19:53:04 +00:00
Add hash query parameter to CSS file URL
This commit is contained in:
parent
0ef29eea4b
commit
6bd0bedce1
4 changed files with 28 additions and 1 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
@ -92,6 +92,7 @@ name = "blessed-rs"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"axum",
|
"axum",
|
||||||
|
"fxhash",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
@ -276,6 +277,15 @@ dependencies = [
|
||||||
"pin-utils",
|
"pin-utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fxhash"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "generic-array"
|
name = "generic-array"
|
||||||
version = "0.12.4"
|
version = "0.12.4"
|
||||||
|
|
|
@ -7,6 +7,7 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
axum = "0.4.8"
|
axum = "0.4.8"
|
||||||
|
fxhash = "0.2.1"
|
||||||
once_cell = "1.10.0"
|
once_cell = "1.10.0"
|
||||||
serde = { version = "1.0.136", features = ["derive"] }
|
serde = { version = "1.0.136", features = ["derive"] }
|
||||||
serde_json = "1.0.79"
|
serde_json = "1.0.79"
|
||||||
|
@ -15,3 +16,5 @@ tokio = { version = "1.17", features = ["full"] }
|
||||||
tower-http = { version = "0.2.5", features = ["fs", "trace"] }
|
tower-http = { version = "0.2.5", features = ["fs", "trace"] }
|
||||||
tracing = "0.1.32"
|
tracing = "0.1.32"
|
||||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||||
|
|
||||||
|
[features]
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
use tera::Tera;
|
use tera::Tera;
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
|
use fxhash::hash32;
|
||||||
|
use std::fs::read_to_string;
|
||||||
|
use std::env::current_dir;
|
||||||
|
use serde_json::{ Value, Number };
|
||||||
|
|
||||||
pub(crate) static TERA: Lazy<Tera> = Lazy::new(|| {
|
pub(crate) static TERA: Lazy<Tera> = Lazy::new(|| {
|
||||||
let mut tera = match Tera::new("templates/**/*.html") {
|
let mut tera = match Tera::new("templates/**/*.html") {
|
||||||
|
@ -9,6 +13,16 @@ pub(crate) static TERA: Lazy<Tera> = Lazy::new(|| {
|
||||||
::std::process::exit(1);
|
::std::process::exit(1);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Register function to get hash of CSS file. Hash doesn't need to be secure as it is
|
||||||
|
// purely to prevent the old version of the file being cached when the file it updated
|
||||||
|
let cwd = current_dir().unwrap();
|
||||||
|
let index_css_path = { let mut path = cwd.clone(); path.push("static/index.css"); path };
|
||||||
|
let index_css_contents = read_to_string(index_css_path).unwrap();
|
||||||
|
let index_css_hash = hash32(&index_css_contents);
|
||||||
|
let index_css_hash_json_value = Value::Number(Number::from_f64(f64::from(index_css_hash)).unwrap());
|
||||||
|
tera.register_function("get_index_css_hash", move |_: &_| Ok(index_css_hash_json_value.clone()));
|
||||||
|
|
||||||
// let mut tera = Tera::default();
|
// let mut tera = Tera::default();
|
||||||
// tera.add_raw_template("list.html", include_str!("list.html")).unwrap();
|
// tera.add_raw_template("list.html", include_str!("list.html")).unwrap();
|
||||||
tera.autoescape_on(vec![".html", ".sql"]);
|
tera.autoescape_on(vec![".html", ".sql"]);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
{% block head %}
|
{% block head %}
|
||||||
<link rel="stylesheet" href="/static/normalize.css" />
|
<link rel="stylesheet" href="/static/normalize.css" />
|
||||||
<link rel="stylesheet" href="/static/index.css" />
|
<link rel="stylesheet" href="/static/index.css?{{ get_index_css_hash() }}" />
|
||||||
<title>{% block title %}Home{% endblock title %} - Blessed.rs</title>
|
<title>{% block title %}Home{% endblock title %} - Blessed.rs</title>
|
||||||
{% endblock head %}
|
{% endblock head %}
|
||||||
</head>
|
</head>
|
||||||
|
|
Loading…
Reference in a new issue