diff --git a/lib/jekyll/admin/static_server.rb b/lib/jekyll/admin/static_server.rb
index <HASH>..<HASH> 100644
--- a/lib/jekyll/admin/static_server.rb
+++ b/lib/jekyll/admin/static_server.rb
@@ -3,8 +3,8 @@ module Jekyll
     class StaticServer < Sinatra::Base
       set :public_dir, File.expand_path("./public/dist", File.dirname(__FILE__))
 
-      # Allow `/admin` and `/admin/` to serve `/public/dist/index.html`
-      get "/" do
+      # Allow `/admin` and `/admin/`, and `/admin/*` to serve `/public/dist/index.html`
+      get "/*" do
         send_file index_path
       end
 
diff --git a/spec/static_server_spec.rb b/spec/static_server_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/static_server_spec.rb
+++ b/spec/static_server_spec.rb
@@ -10,4 +10,10 @@ describe Jekyll::Admin::StaticServer do
     expect(last_response).to be_ok
     expect(last_response.body).to match(/<body>/)
   end
+
+  it "returns the index for non-existent paths" do
+    get '/collections'
+    expect(last_response).to be_ok
+    expect(last_response.body).to match(/<body>/)
+  end
 end
always return the index for any non-asset path