diff --git a/src/renderer/html_handlebars/search.rs b/src/renderer/html_handlebars/search.rs
index d3f67fed..a47b6d2a 100644
--- a/src/renderer/html_handlebars/search.rs
+++ b/src/renderer/html_handlebars/search.rs
@@ -64,7 +64,6 @@ pub fn create_files(
}
if search_config.copy_js {
- static_files.add_builtin("searchindex.json", index.as_bytes());
static_files.add_builtin(
"searchindex.js",
format!("Object.assign(window.search, {});", index).as_bytes(),
diff --git a/src/theme/searcher/searcher.js b/src/theme/searcher/searcher.js
index a2392f3d..bb2cf0b1 100644
--- a/src/theme/searcher/searcher.js
+++ b/src/theme/searcher/searcher.js
@@ -363,7 +363,7 @@ window.search = window.search || {};
}
}
}
-
+
function showSearch(yes) {
if (yes) {
search_wrap.classList.remove('hidden');
@@ -441,7 +441,6 @@ window.search = window.search || {};
}
function doSearch(searchterm) {
-
// Don't search the same twice
if (current_searchterm == searchterm) { return; }
else { current_searchterm = searchterm; }
@@ -468,15 +467,18 @@ window.search = window.search || {};
showResults(true);
}
- fetch(path_to_root + '{{ resource "searchindex.json" }}')
- .then(response => response.json())
- .then(json => init(json))
- .catch(error => { // Try to load searchindex.js if fetch failed
- var script = document.createElement('script');
- script.src = path_to_root + '{{ resource "searchindex.js" }}';
- script.onload = () => init(window.search);
- document.head.appendChild(script);
- });
+ function loadScript(url, id) {
+ const script = document.createElement('script');
+ script.src = url;
+ script.id = id;
+ script.onload = () => init(window.search);
+ script.onerror = error => {
+ console.error(`Failed to load \`${url}\`: ${error}`);
+ };
+ document.head.append(script);
+ }
+
+ loadScript(path_to_root + '{{ resource "searchindex.js" }}', 'search-index');
// Exported functions
search.hasFocus = hasFocus;