Kaynağa Gözat

Use default files to remove index.html from url

Bill Thornton 2 yıl önce
ebeveyn
işleme
155f3856c0

+ 1 - 1
Emby.Server.Implementations/ConfigurationOptions.cs

@@ -14,7 +14,7 @@ namespace Emby.Server.Implementations
         public static Dictionary<string, string?> DefaultConfiguration => new Dictionary<string, string?>
         {
             { HostWebClientKey, bool.TrueString },
-            { DefaultRedirectKey, "web/index.html" },
+            { DefaultRedirectKey, "web/" },
             { FfmpegProbeSizeKey, "1G" },
             { FfmpegAnalyzeDurationKey, "200M" },
             { PlaylistsAllowDuplicatesKey, bool.FalseString },

+ 0 - 2
Jellyfin.Api/Middleware/BaseUrlRedirectionMiddleware.cs

@@ -48,8 +48,6 @@ public class BaseUrlRedirectionMiddleware
         if (string.IsNullOrEmpty(localPath)
             || string.Equals(localPath, baseUrlPrefix, StringComparison.OrdinalIgnoreCase)
             || string.Equals(localPath, baseUrlPrefix + "/", StringComparison.OrdinalIgnoreCase)
-            || string.Equals(localPath, baseUrlPrefix + "/web", StringComparison.OrdinalIgnoreCase)
-            || string.Equals(localPath, baseUrlPrefix + "/web/", StringComparison.OrdinalIgnoreCase)
             || !localPath.StartsWith(baseUrlPrefix, StringComparison.OrdinalIgnoreCase)
            )
         {

+ 7 - 1
Jellyfin.Server/Startup.cs

@@ -182,7 +182,7 @@ namespace Jellyfin.Server
 
                 // This must be injected before any path related middleware.
                 mainApp.UsePathTrim();
-                mainApp.UseStaticFiles();
+
                 if (appConfig.HostWebClient())
                 {
                     var extensionProvider = new FileExtensionContentTypeProvider();
@@ -190,6 +190,11 @@ namespace Jellyfin.Server
                     // subtitles octopus requires .data, .mem files.
                     extensionProvider.Mappings.Add(".data", MediaTypeNames.Application.Octet);
                     extensionProvider.Mappings.Add(".mem", MediaTypeNames.Application.Octet);
+                    mainApp.UseDefaultFiles(new DefaultFilesOptions
+                    {
+                        FileProvider = new PhysicalFileProvider(_serverConfigurationManager.ApplicationPaths.WebPath),
+                        RequestPath = "/web"
+                    });
                     mainApp.UseStaticFiles(new StaticFileOptions
                     {
                         FileProvider = new PhysicalFileProvider(_serverConfigurationManager.ApplicationPaths.WebPath),
@@ -200,6 +205,7 @@ namespace Jellyfin.Server
                     mainApp.UseRobotsRedirection();
                 }
 
+                mainApp.UseStaticFiles();
                 mainApp.UseAuthentication();
                 mainApp.UseJellyfinApiSwagger(_serverConfigurationManager);
                 mainApp.UseQueryStringDecoding();