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)}");
}
AddHtmlTag(viewContext, context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks);
if (file.Length > 0)
{
AddHtmlTag(viewContext, context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks);
}
}
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
{
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.Linq;
using Microsoft.AspNetCore.Http;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Mvc.UI.Resources
{
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();
Resources.AddRange(resourceToBeAdded);
return resourceToBeAdded;
var path = HttpContextAccessor.HttpContext?.Request?.Path ?? "";
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