diff --git a/Volo.Abp.sln b/Volo.Abp.sln index 85d5869fdb..111484058d 100644 --- a/Volo.Abp.sln +++ b/Volo.Abp.sln @@ -180,6 +180,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Mvc.UI. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared", "src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj", "{86A3BB43-8FA2-4CC2-BAD0-A86C6C9D9585}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Mvc.UI.Tests", "test\Volo.Abp.AspNetCore.Mvc.UI.Tests\Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj", "{7E0517E0-AE09-4E10-8469-308F065F2F43}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -502,6 +504,10 @@ Global {86A3BB43-8FA2-4CC2-BAD0-A86C6C9D9585}.Debug|Any CPU.Build.0 = Debug|Any CPU {86A3BB43-8FA2-4CC2-BAD0-A86C6C9D9585}.Release|Any CPU.ActiveCfg = Release|Any CPU {86A3BB43-8FA2-4CC2-BAD0-A86C6C9D9585}.Release|Any CPU.Build.0 = Release|Any CPU + {7E0517E0-AE09-4E10-8469-308F065F2F43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E0517E0-AE09-4E10-8469-308F065F2F43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E0517E0-AE09-4E10-8469-308F065F2F43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E0517E0-AE09-4E10-8469-308F065F2F43}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -588,6 +594,7 @@ Global {0AE814CE-E155-4259-8746-262D174AB510} = {447C8A77-E5F0-4538-8687-7383196D04EA} {2F5EE6D9-511B-4998-BD62-0B9F03E02432} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {86A3BB43-8FA2-4CC2-BAD0-A86C6C9D9585} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {7E0517E0-AE09-4E10-8469-308F065F2F43} = {447C8A77-E5F0-4538-8687-7383196D04EA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Views/Shared/_AppLayout.cshtml b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Views/Shared/_AppLayout.cshtml index 10b7735fe2..c212bce6e9 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Views/Shared/_AppLayout.cshtml +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Views/Shared/_AppLayout.cshtml @@ -11,15 +11,15 @@ ABP Web Application - + - - - + + + @RenderSection("styles", false) @@ -32,7 +32,10 @@ - + + + + @RenderSection("scripts", false) diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/AbpAspNetCoreMvcUiThemeSharedModule.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/AbpAspNetCoreMvcUiThemeSharedModule.cs index d8a13cab07..d194e3e5d9 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/AbpAspNetCoreMvcUiThemeSharedModule.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/AbpAspNetCoreMvcUiThemeSharedModule.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.AspNetCore.Mvc.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; @@ -44,10 +44,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared "/libs/abp/jquery/abp.resource-loader.js", "/libs/abp/aspnetcore.mvc.ui.theme.shared/jquery/jquery-extensions.js", "/libs/abp/aspnetcore.mvc.ui.theme.shared/bootstrap/abp.modal-manager.js", - "/libs/abp/aspnetcore.mvc.ui.theme.shared/datatables/datatables-extensions.js", - - "/Abp/ApplicationConfigurationScript", - "/Abp/ServiceProxyScript" + "/libs/abp/aspnetcore.mvc.ui.theme.shared/datatables/datatables-extensions.js" }); }); diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundleManager.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundleManager.cs deleted file mode 100644 index a8bccaacb8..0000000000 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundleManager.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using Microsoft.Extensions.Options; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.AspNetCore.Mvc.Bundling -{ - public class BundleManager : IBundleManager, ITransientDependency - { - private readonly BundlingOptions _options; - - public BundleManager(IOptions options) - { - _options = options.Value; - } - - public List GetStyleBundleFiles(string bundleName) - { - return _options.StyleBundles.GetFiles(bundleName); - } - - public List GetScriptBundleFiles(string bundleName) - { - return _options.ScriptBundles.GetFiles(bundleName); - } - } -} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/AbpAspNetCoreMvcUiModule.cs similarity index 94% rename from src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI/UI/AbpAspNetCoreMvcUiModule.cs index 5d52fdcd62..c7e1cd0336 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/AbpAspNetCoreMvcUiModule.cs @@ -3,7 +3,7 @@ using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.AspNetCore.Mvc +namespace Volo.Abp.AspNetCore.Mvc.UI { [DependsOn(typeof(AbpAspNetCoreMvcModule))] [DependsOn(typeof(AbpUiNavigationModule))] diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundleCollection.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundleCollection.cs similarity index 94% rename from src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundleCollection.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundleCollection.cs index e04a6a0eeb..bb879c9ed5 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundleCollection.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundleCollection.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Volo.Abp.AspNetCore.Mvc.Bundling +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling { public class BundleCollection { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundleManager.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundleManager.cs new file mode 100644 index 0000000000..f07e94a6ef --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundleManager.cs @@ -0,0 +1,52 @@ +using System.Collections.Concurrent; +using System.Collections.Generic; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling +{ + public class BundleManager : IBundleManager, ISingletonDependency + { + private readonly BundlingOptions _options; + private readonly IHostingEnvironment _hostingEnvironment; + private readonly IBundler _bundler; + + private readonly ConcurrentDictionary _cache; + + public BundleManager( + IOptions options, + IHostingEnvironment hostingEnvironment, + IBundler bundler) + { + _hostingEnvironment = hostingEnvironment; + _bundler = bundler; + _options = options.Value; + + _cache = new ConcurrentDictionary(); + } + + public List GetStyleBundleFiles(string bundleName) + { + return _options.StyleBundles.GetFiles(bundleName); + } + + public List GetScriptBundleFiles(string bundleName) + { + //if (_hostingEnvironment.IsDevelopment()) + { + return _options.ScriptBundles.GetFiles(bundleName); + } + + return new List + { + _cache.GetOrAdd( + "SCRIPT:" + bundleName, + () => _bundler.CreateBundle( + _options.ScriptBundles.GetFiles(bundleName) + ) + ) + }; + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/Bundler.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/Bundler.cs new file mode 100644 index 0000000000..796ac447d5 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/Bundler.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling +{ + public class Bundler : IBundler, ITransientDependency + { + public Bundler() + { + + } + + public string CreateBundle(List files) + { + return ""; + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundlingOptions.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundlingOptions.cs similarity index 87% rename from src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundlingOptions.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundlingOptions.cs index 8936fe066d..29ea934506 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/BundlingOptions.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/BundlingOptions.cs @@ -1,4 +1,4 @@ -namespace Volo.Abp.AspNetCore.Mvc.Bundling +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling { public class BundlingOptions { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/IBundleManager.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/IBundleManager.cs similarity index 81% rename from src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/IBundleManager.cs rename to src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/IBundleManager.cs index 3c2bc8f361..1920e39838 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Bundling/IBundleManager.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/IBundleManager.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Volo.Abp.AspNetCore.Mvc.Bundling +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling { public interface IBundleManager { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/IBundler.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/IBundler.cs new file mode 100644 index 0000000000..1066a08b9b --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Bundling/IBundler.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling +{ + public interface IBundler + { + string CreateBundle(List files); + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/IJavascriptMinifier.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/IJavascriptMinifier.cs new file mode 100644 index 0000000000..883af39e41 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/IJavascriptMinifier.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Minification +{ + public interface IJavascriptMinifier + { + string Minify(string source, string fileName = null); + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/NUglify/NUglifyException.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/NUglify/NUglifyException.cs new file mode 100644 index 0000000000..a5f36340a8 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/NUglify/NUglifyException.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.Runtime.Serialization; +using NUglify; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify +{ + public class NUglifyException : AbpException + { + public List Errors { get; set; } + + public NUglifyException(string message, List errors) + : base(message) + { + Errors = errors; + } + + /// + /// Constructor for serializing. + /// + public NUglifyException(SerializationInfo serializationInfo, StreamingContext context) + : base(serializationInfo, context) + { + + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs new file mode 100644 index 0000000000..46438757d9 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs @@ -0,0 +1,26 @@ +using NUglify; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify +{ + public class NUglifyJavascriptMinifier : IJavascriptMinifier, ITransientDependency + { + public string Minify(string source, string fileName = null) + { + var result = Uglify.Js(source, fileName); + CheckErrors(result); + return result.Code; + } + + private static void CheckErrors(UglifyResult result) + { + if (result.HasErrors) + { + throw new NUglifyException( + "There are some errors on uglifying the given source code!", + result.Errors + ); + } + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpScriptBundle/AbpStyleBundleViewComponent.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpScriptBundle/AbpStyleBundleViewComponent.cs index 0276c22360..b2119020aa 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpScriptBundle/AbpStyleBundleViewComponent.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpScriptBundle/AbpStyleBundleViewComponent.cs @@ -1,5 +1,5 @@ using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; namespace Volo.Abp.AspNetCore.Mvc.Views.Shared.Components.AbpScriptBundle { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpStyleBundle/AbpStyleBundleViewComponent.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpStyleBundle/AbpStyleBundleViewComponent.cs index 5152e3b710..09144bfc3a 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpStyleBundle/AbpStyleBundleViewComponent.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/Views/Shared/Components/AbpStyleBundle/AbpStyleBundleViewComponent.cs @@ -1,5 +1,5 @@ using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; namespace Volo.Abp.AspNetCore.Mvc.Views.Shared.Components.AbpStyleBundle { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index f30e80a1a3..0f96f0e496 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -14,6 +14,10 @@ + + + + diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj new file mode 100644 index 0000000000..78b69e425f --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj @@ -0,0 +1,48 @@ + + + + netcoreapp2.0 + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + Volo.Abp.AspNetCore.Mvc.UI.Tests + Volo.Abp.AspNetCore.Mvc.UI.Tests + true + true + false + false + false + true + true + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + + + + + + + + + + diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/AbpAspNetCoreMvcUiTestBase.cs b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/AbpAspNetCoreMvcUiTestBase.cs new file mode 100644 index 0000000000..af4d7884b8 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/AbpAspNetCoreMvcUiTestBase.cs @@ -0,0 +1,9 @@ +using Volo.Abp.AspNetCore.TestBase; + +namespace Volo.Abp.AspNetCore.Mvc.UI +{ + public abstract class AbpAspNetCoreMvcUiTestBase : AbpAspNetCoreIntegratedTestBase + { + + } +} \ No newline at end of file diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/AbpAspNetCoreMvcUiTestModule.cs b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/AbpAspNetCoreMvcUiTestModule.cs new file mode 100644 index 0000000000..7df5be3bf7 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/AbpAspNetCoreMvcUiTestModule.cs @@ -0,0 +1,20 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.TestBase; +using Volo.Abp.Autofac; +using Volo.Abp.Modularity; + +namespace Volo.Abp.AspNetCore.Mvc.UI +{ + [DependsOn( + typeof(AbpAspNetCoreTestBaseModule), + typeof(AbpAspNetCoreMvcUiModule), + typeof(AbpAutofacModule) + )] + public class AbpAspNetCoreMvcUiTestModule : AbpModule + { + public override void ConfigureServices(IServiceCollection services) + { + services.AddAssemblyOf(); + } + } +} diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs new file mode 100644 index 0000000000..ca04a8c929 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs @@ -0,0 +1,26 @@ +using Shouldly; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify +{ + public class NUglifyJavascriptMinifier_Tests : AbpAspNetCoreMvcUiTestBase + { + private readonly NUglifyJavascriptMinifier _nUglifyJavascriptMinifier; + + public NUglifyJavascriptMinifier_Tests() + { + _nUglifyJavascriptMinifier = GetRequiredService(); + } + + [Fact] + public void Should_Minify_Simple_Code() + { + const string source = "var x = 5; var y = 6;"; + + var minified = _nUglifyJavascriptMinifier.Minify(source); + + minified.Length.ShouldBeGreaterThan(0); + minified.Length.ShouldBeLessThan(source.Length); + } + } +} diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs new file mode 100644 index 0000000000..1f4182110a --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace Volo.Abp.AspNetCore.Mvc.UI +{ + public class Startup + { + public IServiceProvider ConfigureServices(IServiceCollection services) + { + services.AddApplication(options => + { + options.UseAutofac(); + }); + + //TODO: This is needed because ASP.NET Core does not use IServiceProviderFactory! + return services.BuildServiceProviderFromFactory(); + } + + public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + { + app.InitializeApplication(); + } + } +} diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib1/lib1.css b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib1/lib1.css new file mode 100644 index 0000000000..edfc4e2bd0 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib1/lib1.css @@ -0,0 +1,3 @@ +.lib1-css-content { + color: red; +} \ No newline at end of file diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib1/lib1.js b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib1/lib1.js new file mode 100644 index 0000000000..0e2f95a478 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib1/lib1.js @@ -0,0 +1,3 @@ +(function() { + //lib1-js-content +})(); \ No newline at end of file diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib2/lib2.css b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib2/lib2.css new file mode 100644 index 0000000000..f1789fb234 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib2/lib2.css @@ -0,0 +1,3 @@ +.lib2-css-content { + color: blue; +} diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib2/lib2.js b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib2/lib2.js new file mode 100644 index 0000000000..531f167aa1 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/wwwroot/libs/lib2/lib2.js @@ -0,0 +1,3 @@ +(function() { + //lib2-js-content +})(); \ No newline at end of file