Skip to content

Commit dc0b434

Browse files
committed
add CDN caching to HTML partials for releases & platforms
1 parent dda6f2a commit dc0b434

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/web/crate_details.rs

+3
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ struct ReleaseList {
443443

444444
impl_axum_webpage! {
445445
ReleaseList = "rustdoc/releases.html",
446+
cache_policy = |_| CachePolicy::ForeverInCdn,
446447
cpu_intensive_rendering = true,
447448
}
448449

@@ -499,6 +500,7 @@ struct PlatformList {
499500

500501
impl_axum_webpage! {
501502
PlatformList = "rustdoc/platforms.html",
503+
cache_policy = |_| CachePolicy::ForeverInCdn,
502504
cpu_intensive_rendering = true,
503505
}
504506

@@ -1337,6 +1339,7 @@ mod tests {
13371339
.send()
13381340
.unwrap();
13391341
assert!(response.status().is_success());
1342+
assert_cache_control(&response, CachePolicy::ForeverInCdn, &env.config());
13401343
let list2 = check_links(response.text().unwrap(), true, should_contain_redirect);
13411344
assert_eq!(list1, list2);
13421345
}

src/web/rustdoc.rs

+7-6
Original file line numberDiff line numberDiff line change
@@ -2236,12 +2236,13 @@ mod test {
22362236
.create()?;
22372237

22382238
// test rustdoc pages stay on the documentation
2239-
let page = kuchikiki::parse_html().one(
2240-
env.frontend()
2241-
.get("/crate/hexponent/0.3.1/menus/releases")
2242-
.send()?
2243-
.text()?,
2244-
);
2239+
let releases_response = env
2240+
.frontend()
2241+
.get("/crate/hexponent/0.3.1/menus/releases")
2242+
.send()?;
2243+
assert!(releases_response.status().is_success());
2244+
assert_cache_control(&releases_response, CachePolicy::ForeverInCdn, &env.config());
2245+
let page = kuchikiki::parse_html().one(releases_response.text()?);
22452246
let selector =
22462247
r#"ul > li a[href="/crate/hexponent/0.3.1/target-redirect/hexponent/index.html"]"#
22472248
.to_string();

0 commit comments

Comments
 (0)