diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 5b54b32e4ddea..f4a84efb5971d 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -1745,12 +1745,17 @@ fn print_sidebar(cx: &Context<'_>, it: &clean::Item, buffer: &mut Buffer) {
ty = it.type_(),
path = relpath
);
+
if parentlen == 0 {
- // There is no sidebar-items.js beyond the crate root path
- // FIXME maybe dynamic crate loading can be merged here
+ write!(
+ buffer,
+ "",
+ relpath, cx.shared.resource_suffix
+ );
} else {
- write!(buffer, "", path = relpath);
+ write!(buffer, "", relpath);
}
+
// Closes sidebar-elems div.
buffer.write_str("");
}
diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs
index d0518cb6862fe..ec54d94726eab 100644
--- a/src/librustdoc/html/render/write_shared.rs
+++ b/src/librustdoc/html/render/write_shared.rs
@@ -225,6 +225,8 @@ pub(super) fn write_shared(
)?;
write_minify("search.js", static_files::SEARCH_JS)?;
write_minify("settings.js", static_files::SETTINGS_JS)?;
+ write_minify("sidebar-items.js", static_files::sidebar::ITEMS)?;
+
if cx.shared.include_sources {
write_minify("source-script.js", static_files::sidebar::SOURCE_SCRIPT)?;
}
diff --git a/src/librustdoc/html/static/sidebar-items.js b/src/librustdoc/html/static/sidebar-items.js
new file mode 100644
index 0000000000000..81172ba0d9280
--- /dev/null
+++ b/src/librustdoc/html/static/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({});
diff --git a/src/librustdoc/html/static_files.rs b/src/librustdoc/html/static_files.rs
index 1abb1f7294a18..4e3d5ff0a4a5a 100644
--- a/src/librustdoc/html/static_files.rs
+++ b/src/librustdoc/html/static_files.rs
@@ -130,4 +130,7 @@ crate mod source_code_pro {
crate mod sidebar {
/// File script to handle sidebar.
crate static SOURCE_SCRIPT: &str = include_str!("static/source-script.js");
+
+ /// Top Level sidebar items script which will load a sidebar without items.
+ crate static ITEMS: &str = include_str!("static/sidebar-items.js");
}