diff --git a/Makefile b/Makefile
index 8d3fd3ee83f61b..f41887a4d3d8c5 100644
--- a/Makefile
+++ b/Makefile
@@ -1440,6 +1440,7 @@ llama-server: \
examples/server/system-prompts.js.hpp \
examples/server/prompt-formats.js.hpp \
examples/server/json-schema-to-grammar.mjs.hpp \
+ examples/server/loading.html.hpp \
common/json.hpp \
common/stb_image.h \
$(OBJ_ALL)
diff --git a/examples/server/CMakeLists.txt b/examples/server/CMakeLists.txt
index dbe41f1fd11205..580f3a8248cf57 100644
--- a/examples/server/CMakeLists.txt
+++ b/examples/server/CMakeLists.txt
@@ -30,6 +30,7 @@ set(PUBLIC_ASSETS
system-prompts.js
prompt-formats.js
json-schema-to-grammar.mjs
+ loading.html
)
foreach(asset ${PUBLIC_ASSETS})
diff --git a/examples/server/public/loading.html b/examples/server/public/loading.html
new file mode 100644
index 00000000000000..c3fd19a0f5ae77
--- /dev/null
+++ b/examples/server/public/loading.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ The model is loading. Please wait.
+ The user interface will appear soon.
+
+
+
diff --git a/examples/server/server.cpp b/examples/server/server.cpp
index 2f41f45677c723..73cd6aae75e97c 100644
--- a/examples/server/server.cpp
+++ b/examples/server/server.cpp
@@ -28,6 +28,7 @@
#include "system-prompts.js.hpp"
#include "prompt-formats.js.hpp"
#include "json-schema-to-grammar.mjs.hpp"
+#include "loading.html.hpp"
#include
#include
@@ -2595,8 +2596,9 @@ int main(int argc, char ** argv) {
auto middleware_server_state = [&res_error, &state](const httplib::Request & req, httplib::Response & res) {
server_state current_state = state.load();
if (current_state == SERVER_STATE_LOADING_MODEL) {
- if(req.path == "/"){
- res.set_content("The model is loading. Please wait.
The user interface will appear soon.
You may need to refresh the page.", "text/html; charset=utf-8");
+ auto tmp = string_split(req.path, '.');
+ if (req.path == "/" || tmp.back() == "html") {
+ res.set_content(reinterpret_cast(loading_html), loading_html_len, "text/html; charset=utf-8");
res.status = 503;
} else {
res_error(res, format_error_response("Loading model", ERROR_TYPE_UNAVAILABLE));