Browse Source

Only enable the `CheckLibs` if project is depends on `AbpAspNetCoreMvcUiBundlingModule`.

pull/20565/head
maliming 2 years ago
parent
commit
faec129c59
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 11
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs
  2. 5
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs
  3. 21
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs

11
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<AbpMvcLibsOptions>(options =>
{
options.CheckLibs = true;
});
}
}

5
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;
}
}

21
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
" <title>ABP MVC Libs Error</title>" +
" </head>" +
" <body>" +
" <h1>ABP MVC Libs folder is not found!</h1>" +
" <h1>ABP MVC Libs folder(wwwroot/libs) does not exist or empty!</h1>" +
" <p>Please make sure you have run the <b>abp install-libs</b> command.</p>" +
" <p>For more information, see <a href='https://abp.io/docs/latest/CLI#install-libs'>CLI install-libs</a> document.</p>" +
" </body>" +
@ -61,13 +63,14 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency
protected virtual Task<bool> HandleCheckLibsAsync(HttpContext httpContext)
{
var fileProvider = httpContext.RequestServices.GetRequiredService<IWebHostEnvironment>().WebRootFileProvider;
var abpFiles = new IFileInfo[]
var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService<IWebHostEnvironment>().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<ILogger<AbpMvcLibsService>>();
logger.LogError("The 'wwwroot/libs' folder does not exist or empty!");
return Task.FromResult(false);
}
return Task.FromResult(true);
}
}

Loading…
Cancel
Save