コード例 #1
0
        public virtual void Configure(IAppBuilder owinApp)
        {
            AppEnvironment appEnvironment = _appEnvironmentProvider.GetActiveAppEnvironment();

            string rootFolder = _pathProvider.GetCurrentStaticFilesPath();

            PhysicalFileSystem fileSystem = new PhysicalFileSystem(rootFolder);

            FileServerOptions options = new FileServerOptions
            {
                EnableDirectoryBrowsing = appEnvironment.DebugMode,
                EnableDefaultFiles      = false
            };

            options.DefaultFilesOptions.DefaultFileNames.Clear();

            options.FileSystem = fileSystem;

            string path = $@"/Files/V{appEnvironment.AppInfo.Version}";

            owinApp.Map(path, innerApp =>
            {
                if (appEnvironment.DebugMode == true)
                {
                    innerApp.Use <OwinNoCacheResponseMiddleware>();
                }
                else
                {
                    innerApp.Use <OwinCacheResponseMiddleware>();
                }
                innerApp.UseXContentTypeOptions();
                innerApp.UseXDownloadOptions();
                innerApp.UseFileServer(options);
            });

            owinApp.Map("/Files", innerApp =>
            {
                innerApp.Use <OwinNoCacheResponseMiddleware>();
                innerApp.UseXContentTypeOptions();
                innerApp.UseXDownloadOptions();
                innerApp.UseFileServer(options);
            });
        }