From 7d371f24626612a2ba7b4870b1b14b63484c2c1e Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 14 Jun 2018 01:32:04 +0300 Subject: [PATCH] Add version query string parameter to the bundle items. --- .../TagHelpers/AbpBundleTagHelperServiceBase.cs | 13 +++++++++++-- .../TagHelpers/AbpScriptBundleTagHelperService.cs | 9 +++++++-- .../TagHelpers/AbpStyleBundleTagHelperService.cs | 9 +++++++-- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperServiceBase.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperServiceBase.cs index 860a4f939e..b5d0f59cb6 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperServiceBase.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperServiceBase.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers; +using Volo.Abp.AspNetCore.VirtualFileSystem; namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { @@ -10,10 +11,12 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers where TTagHelper : TagHelper, IBundleTagHelper { protected IBundleManager BundleManager { get; } + protected IHybridWebRootFileProvider WebRootFileProvider { get; } - protected AbpBundleTagHelperServiceBase(IBundleManager bundleManager) + protected AbpBundleTagHelperServiceBase(IBundleManager bundleManager, IHybridWebRootFileProvider webRootFileProvider) { BundleManager = bundleManager; + WebRootFileProvider = webRootFileProvider; } public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) @@ -35,7 +38,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers foreach (var bundleFile in bundleFiles) { - AddHtmlTag(context, output, bundleFile + "_"); + var file = WebRootFileProvider.GetFileInfo(bundleFile); + if (file == null) + { + throw new AbpException($"Could not find the bundle file from {nameof(IHybridWebRootFileProvider)}"); + } + + AddHtmlTag(context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks); } } diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelperService.cs index 125719e60d..87f8370577 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelperService.cs @@ -1,13 +1,18 @@ using System; using System.Collections.Generic; using Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.AspNetCore.VirtualFileSystem; namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { public class AbpScriptBundleTagHelperService : AbpBundleTagHelperServiceBase { - public AbpScriptBundleTagHelperService(IBundleManager bundleManager) - : base(bundleManager) + public AbpScriptBundleTagHelperService( + IBundleManager bundleManager, + IHybridWebRootFileProvider webRootFileProvider) + : base( + bundleManager, + webRootFileProvider) { } diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelperService.cs index 72da7547e1..308989f1a2 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelperService.cs @@ -1,13 +1,18 @@ using System; using System.Collections.Generic; using Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.AspNetCore.VirtualFileSystem; namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { public class AbpStyleBundleTagHelperService : AbpBundleTagHelperServiceBase { - public AbpStyleBundleTagHelperService(IBundleManager bundleManager) - : base(bundleManager) + public AbpStyleBundleTagHelperService( + IBundleManager bundleManager, + IHybridWebRootFileProvider webRootFileProvider) + : base( + bundleManager, + webRootFileProvider) { }