Browse Source

Merge pull request #4316 from abpframework/maliming/IWebRequestResources-patch

Make WebRequestResources store resources according to the current request Path.
pull/4353/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
b9c3faf2c7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs
  2. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Resources/IWebRequestResources.cs
  3. 28
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Resources/WebRequestResources.cs

5
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs

@ -73,7 +73,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers
throw new AbpException($"Could not find the bundle file '{bundleFile}' from {nameof(IWebContentFileProvider)}"); throw new AbpException($"Could not find the bundle file '{bundleFile}' from {nameof(IWebContentFileProvider)}");
} }
AddHtmlTag(viewContext, context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks); if (file.Length > 0)
{
AddHtmlTag(viewContext, context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks);
}
} }
stopwatch.Stop(); stopwatch.Stop();

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Resources/IWebRequestResources.cs

@ -4,6 +4,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Resources
{ {
public interface IWebRequestResources public interface IWebRequestResources
{ {
List<string> TryAdd(IEnumerable<string> resources); List<string> TryAdd(List<string> resources);
} }
} }

28
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Resources/WebRequestResources.cs

@ -1,23 +1,35 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Microsoft.AspNetCore.Http;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Mvc.UI.Resources namespace Volo.Abp.AspNetCore.Mvc.UI.Resources
{ {
public class WebRequestResources : IWebRequestResources, IScopedDependency public class WebRequestResources : IWebRequestResources, IScopedDependency
{ {
protected List<string> Resources { get; } protected Dictionary<string, List<string>> Resources { get; }
public WebRequestResources() protected IHttpContextAccessor HttpContextAccessor{ get; }
public WebRequestResources(IHttpContextAccessor httpContextAccessor)
{ {
Resources = new List<string>(); HttpContextAccessor = httpContextAccessor;
Resources = new Dictionary<string, List<string>>();
} }
public List<string> TryAdd(IEnumerable<string> resources) public List<string> TryAdd(List<string> resources)
{ {
var resourceToBeAdded = resources.Except(Resources).ToList(); var path = HttpContextAccessor.HttpContext?.Request?.Path ?? "";
Resources.AddRange(resourceToBeAdded);
return resourceToBeAdded; if (Resources.TryGetValue(path, out var res))
{
var resourceToBeAdded = resources.Except(res).ToList();
res.AddRange(resourceToBeAdded);
return resourceToBeAdded;
}
Resources.Add(path, resources);
return resources;
} }
} }
} }

Loading…
Cancel
Save