From faec129c59410894de37bde0e351294b673cf437 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 20 Aug 2024 15:19:15 +0800 Subject: [PATCH] Only enable the `CheckLibs` if project is depends on `AbpAspNetCoreMvcUiBundlingModule`. --- .../AbpAspNetCoreMvcUiBundlingModule.cs | 11 ++++++++-- .../AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs | 5 ----- .../AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 21 +++++++++++-------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs index bdd4cb2a27..4e020bfcf8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.Libs; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.Minify; using Volo.Abp.Modularity; @@ -11,5 +12,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling; )] public class AbpAspNetCoreMvcUiBundlingModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.CheckLibs = true; + }); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs index 4daf23204b..d166528a05 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs @@ -3,9 +3,4 @@ namespace Volo.Abp.AspNetCore.Mvc.Libs; public class AbpMvcLibsOptions { public bool CheckLibs { get; set; } - - public AbpMvcLibsOptions() - { - CheckLibs = true; - } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs index 0650cded0a..4cb9952158 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -5,9 +5,11 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Microsoft.Extensions.FileProviders; using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Mvc.Libs; @@ -34,7 +36,7 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency " ABP MVC Libs Error" + " " + " " + - "

ABP MVC Libs folder is not found!

" + + "

ABP MVC Libs folder(wwwroot/libs) does not exist or empty!

" + "

Please make sure you have run the abp install-libs command.

" + "

For more information, see CLI install-libs document.

" + " " + @@ -61,13 +63,14 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency protected virtual Task HandleCheckLibsAsync(HttpContext httpContext) { - var fileProvider = httpContext.RequestServices.GetRequiredService().WebRootFileProvider; - var abpFiles = new IFileInfo[] + var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService().WebRootPath); + var libsFolder = fileProvider.GetDirectoryContents("/libs"); + if (!libsFolder.Exists || !libsFolder.Any()) { - fileProvider.GetFileInfo("/libs/abp/core/abp.js"), - fileProvider.GetFileInfo("/libs/abp/core/abp.css") - }; - - return Task.FromResult(abpFiles.All(abpFile => abpFile.Exists)); + var logger = httpContext.RequestServices.GetRequiredService>(); + logger.LogError("The 'wwwroot/libs' folder does not exist or empty!"); + return Task.FromResult(false); + } + return Task.FromResult(true); } }