diff --git a/API/Controllers/FallbackController.cs b/API/Controllers/FallbackController.cs index 0c92547..d54abb9 100644 --- a/API/Controllers/FallbackController.cs +++ b/API/Controllers/FallbackController.cs @@ -22,7 +22,7 @@ public class FallbackController : Controller public PhysicalFileResult Index() { - return PhysicalFile(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "index.html"), "text/HTML"); + return PhysicalFile(Path.Combine("@webroot@", "index.html"), "text/HTML"); } } diff --git a/API/Services/DirectoryService.cs b/API/Services/DirectoryService.cs index 8c6c796..711f315 100644 --- a/API/Services/DirectoryService.cs +++ b/API/Services/DirectoryService.cs @@ -120,7 +120,7 @@ public class DirectoryService : IDirectoryService ExistOrCreate(SiteThemeDirectory); FaviconDirectory = FileSystem.Path.Join(FileSystem.Directory.GetCurrentDirectory(), "config", "favicons"); ExistOrCreate(FaviconDirectory); - LocalizationDirectory = FileSystem.Path.Join(FileSystem.Directory.GetCurrentDirectory(), "I18N"); + LocalizationDirectory = FileSystem.Path.Join("@out@/lib/kavita-backend", "I18N"); CustomizedTemplateDirectory = FileSystem.Path.Join(FileSystem.Directory.GetCurrentDirectory(), "config", "templates"); ExistOrCreate(CustomizedTemplateDirectory); TemplateDirectory = FileSystem.Path.Join(FileSystem.Directory.GetCurrentDirectory(), "EmailTemplates"); diff --git a/API/Services/LocalizationService.cs b/API/Services/LocalizationService.cs index ab3ad3d..f1a068b 100644 --- a/API/Services/LocalizationService.cs +++ b/API/Services/LocalizationService.cs @@ -52,8 +52,7 @@ public class LocalizationService : ILocalizationService else { _localizationDirectoryUi = directoryService.FileSystem.Path.Join( - directoryService.FileSystem.Directory.GetCurrentDirectory(), - "wwwroot", "assets/langs"); + "@webroot@", "assets/langs"); } _cacheOptions = new MemoryCacheEntryOptions() diff --git a/API/Startup.cs b/API/Startup.cs index 7e3857c..84c466b 100644 --- a/API/Startup.cs +++ b/API/Startup.cs @@ -36,6 +36,7 @@ using Microsoft.AspNetCore.StaticFiles; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Net.Http.Headers; @@ -314,9 +315,6 @@ public class Startup app.UsePathBase(basePath); if (!env.IsDevelopment()) { - // We don't update the index.html in local as we don't serve from there - UpdateBaseUrlInIndex(basePath); - // Update DB with what's in config var dataContext = serviceProvider.GetRequiredService(); var setting = dataContext.ServerSetting.SingleOrDefault(x => x.Key == ServerSettingKey.BaseUrl); @@ -360,6 +358,7 @@ public class Startup app.UseStaticFiles(new StaticFileOptions { + FileProvider = new PhysicalFileProvider("@webroot@"), // bcmap files needed for PDF reader localizations (https://github.com/Kareadita/Kavita/issues/2970) ContentTypeProvider = new FileExtensionContentTypeProvider { @@ -439,7 +438,7 @@ public class Startup try { var htmlDoc = new HtmlDocument(); - var indexHtmlPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "index.html"); + var indexHtmlPath = Path.Combine("@webroot@", "index.html"); htmlDoc.Load(indexHtmlPath); var baseNode = htmlDoc.DocumentNode.SelectSingleNode("/html/head/base");