diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets
index 03e88aac848d..87ed4c7c408f 100644
--- a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets
+++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets
@@ -221,7 +221,7 @@ Copyright (c) .NET Foundation. All rights reserved.
- <_ResolveBuildCompressedStaticWebAssetsCachePath>$(_StaticWebAssetsManifestBase)rbcswa.dswa.cache.json
+ <_ResolveBuildCompressedStaticWebAssetsCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rbcswa.dswa.cache.json
<_CompressionCurrentProjectBuildAssets Include="@(StaticWebAsset)" />
+
- <_ResolveJsInitializerModuleStaticWebAssetsCachePath>$(_StaticWebAssetsManifestBase)rjimswa.dswa.cache.json
+ <_ResolveJsInitializerModuleStaticWebAssetsCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rjimswa.dswa.cache.json
+
@@ -411,10 +412,10 @@ Copyright (c) .NET Foundation. All rights reserved.
- <_ResolveJSModuleStaticWebAssetsRazorCachePath>$(_StaticWebAssetsManifestBase)rjsmrazor.dswa.cache.json
+ <_ResolveJSModuleStaticWebAssetsRazorCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rjsmrazor.dswa.cache.json
- <_ResolveJSModuleStaticWebAssetsCshtmlCachePath>$(_StaticWebAssetsManifestBase)rjsmcshtml.dswa.cache.json
+ <_ResolveJSModuleStaticWebAssetsCshtmlCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rjsmcshtml.dswa.cache.json
@@ -487,6 +488,9 @@ Copyright (c) .NET Foundation. All rights reserved.
+
+
+
diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets
index 8e2d47e17131..ec4b169dd7f4 100644
--- a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets
+++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets
@@ -433,6 +433,7 @@ Copyright (c) .NET Foundation. All rights reserved.
true
Browser
Server
+ true
<_StaticWebAssetsManifestBase Condition="'$(_StaticWebAssetsManifestBase)' == ''">$(IntermediateOutputPath)
@@ -672,7 +673,7 @@ Copyright (c) .NET Foundation. All rights reserved.
DependsOnTargets="ResolveStaticWebAssetsConfiguration;UpdateExistingPackageStaticWebAssets">
- <_ResolveProjectStaticWebAssetsCachePath>$(_StaticWebAssetsManifestBase)rpswa.dswa.cache.json
+ <_ResolveProjectStaticWebAssetsCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rpswa.dswa.cache.json
+
+
diff --git a/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssets.Cache.cs b/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssets.Cache.cs
index e1a24954d29a..f0654f76eca0 100644
--- a/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssets.Cache.cs
+++ b/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssets.Cache.cs
@@ -113,7 +113,7 @@ internal static DefineStaticWebAssetsCache ReadOrCreateCache(TaskLoggingHelper l
internal void WriteCacheManifest()
{
- if (_manifestPath != null)
+ if (_manifestPath != null && !_cacheUpToDate && InputHashes.Count > 0)
{
using var manifestFile = File.OpenWrite(_manifestPath);
manifestFile.SetLength(0);
@@ -165,6 +165,8 @@ private void TotalUpdate(byte[] propertiesHash, byte[] fingerprintPatternsHash,
GlobalPropertiesHash = propertiesHash;
FingerprintPatternsHash = fingerprintPatternsHash;
PropertyOverridesHash = propertyOverridesHash;
+ CachedAssets.Clear();
+ CachedCopyCandidates.Clear();
InputHashes = [.. inputsByHash.Keys];
_inputByHash = inputsByHash;
}
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/DiscoverStaticWebAssetsTest.cs b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/DiscoverStaticWebAssetsTest.cs
index 3aefa660887e..8223d22c7b0a 100644
--- a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/DiscoverStaticWebAssetsTest.cs
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/DiscoverStaticWebAssetsTest.cs
@@ -601,6 +601,8 @@ public void DefineStaticWebAssetsCache_Recomputes_All_WhenPropertiesChange(Updat
Assert.False(cache.IsUpToDate());
Assert.Same(inputHashes, cache.OutOfDateInputs());
+ Assert.Empty(cache.CachedAssets);
+ Assert.Empty(cache.CachedCopyCandidates);
}
[Fact]
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Build_Can_DisableAssetCaching.Build.files.json b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Build_Can_DisableAssetCaching.Build.files.json
new file mode 100644
index 000000000000..ff5e94bf0263
--- /dev/null
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Build_Can_DisableAssetCaching.Build.files.json
@@ -0,0 +1,6 @@
+[
+ "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css"
+]
\ No newline at end of file
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Build_Can_DisableAssetCaching.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Build_Can_DisableAssetCaching.Build.staticwebassets.json
new file mode 100644
index 000000000000..ab40209e2da7
--- /dev/null
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Build_Can_DisableAssetCaching.Build.staticwebassets.json
@@ -0,0 +1,1390 @@
+{
+ "Version": 1,
+ "Hash": "__hash__",
+ "Source": "ComponentApp",
+ "BasePath": "/",
+ "Mode": "Root",
+ "ManifestType": "Build",
+ "ReferencedProjectsConfiguration": [],
+ "DiscoveryPatterns": [],
+ "Assets": [
+ {
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "SourceId": "ComponentApp",
+ "SourceType": "Computed",
+ "ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\",
+ "BasePath": "/",
+ "RelativePath": "ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "AssetKind": "All",
+ "AssetMode": "Reference",
+ "AssetRole": "Alternative",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css",
+ "AssetTraitName": "Content-Encoding",
+ "AssetTraitValue": "gzip",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "SourceId": "ComponentApp",
+ "SourceType": "Computed",
+ "ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\",
+ "BasePath": "/",
+ "RelativePath": "ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "AssetKind": "All",
+ "AssetMode": "CurrentProject",
+ "AssetRole": "Alternative",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "AssetTraitName": "Content-Encoding",
+ "AssetTraitValue": "gzip",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.server.js.gz",
+ "SourceId": "ComponentApp",
+ "SourceType": "Discovered",
+ "ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\",
+ "BasePath": "/",
+ "RelativePath": "_framework/blazor.server.js.gz",
+ "AssetKind": "All",
+ "AssetMode": "CurrentProject",
+ "AssetRole": "Alternative",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.server.js",
+ "AssetTraitName": "Content-Encoding",
+ "AssetTraitValue": "gzip",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\_framework\\blazor.server.js.gz",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "SourceId": "ComponentApp",
+ "SourceType": "Discovered",
+ "ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\",
+ "BasePath": "/",
+ "RelativePath": "_framework/blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "AssetKind": "All",
+ "AssetMode": "CurrentProject",
+ "AssetRole": "Alternative",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.web.js",
+ "AssetTraitName": "Content-Encoding",
+ "AssetTraitValue": "gzip",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\_framework\\blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "SourceId": "ComponentApp",
+ "SourceType": "Computed",
+ "ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\",
+ "BasePath": "/",
+ "RelativePath": "ComponentApp#[.{fingerprint}]?.styles.css",
+ "AssetKind": "All",
+ "AssetMode": "CurrentProject",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "ScopedCss",
+ "AssetTraitValue": "ApplicationBundle",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css",
+ "SourceId": "ComponentApp",
+ "SourceType": "Computed",
+ "ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\",
+ "BasePath": "/",
+ "RelativePath": "ComponentApp#[.{fingerprint}]!.bundle.scp.css",
+ "AssetKind": "All",
+ "AssetMode": "Reference",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "ScopedCss",
+ "AssetTraitValue": "ProjectBundle",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.server.js",
+ "SourceId": "ComponentApp",
+ "SourceType": "Discovered",
+ "ContentRoot": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\",
+ "BasePath": "/",
+ "RelativePath": "_framework/blazor.server.js",
+ "AssetKind": "All",
+ "AssetMode": "CurrentProject",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "",
+ "AssetTraitValue": "",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\build\\..\\_framework\\blazor.server.js",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ },
+ {
+ "Identity": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.web.js",
+ "SourceId": "ComponentApp",
+ "SourceType": "Discovered",
+ "ContentRoot": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\",
+ "BasePath": "/",
+ "RelativePath": "_framework/blazor.web#[.{fingerprint}]?.js",
+ "AssetKind": "All",
+ "AssetMode": "CurrentProject",
+ "AssetRole": "Primary",
+ "AssetMergeBehavior": "",
+ "AssetMergeSource": "",
+ "RelatedAsset": "",
+ "AssetTraitName": "",
+ "AssetTraitValue": "",
+ "Fingerprint": "__fingerprint__",
+ "Integrity": "__integrity__",
+ "CopyToOutputDirectory": "Never",
+ "CopyToPublishDirectory": "PreserveNewest",
+ "OriginalItemSpec": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\build\\..\\_framework\\blazor.web.js",
+ "FileLength": -1,
+ "LastWriteTime": "0001-01-01T00:00:00+00:00"
+ }
+ ],
+ "Endpoints": [
+ {
+ "Route": "ComponentApp.bundle.scp.css.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.bundle.scp.css.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.bundle.scp.css.gz"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.bundle.scp.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.bundle.scp.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.bundle.scp.css"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.styles.css.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.styles.css.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.styles.css.gz"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.styles.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.styles.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.styles.css"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.server.js.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.server.js.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.server.js.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.server.js.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "_framework/blazor.server.js.gz"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.server.js",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.server.js.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.server.js",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.server.js.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "_framework/blazor.server.js"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.web.js.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.web.js.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "_framework/blazor.web.js.gz"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.web.js",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.web.js",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_framework\\blazor.web#[.{fingerprint=__fingerprint__}]?.js.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "_framework/blazor.web.js"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.styles.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.styles.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.styles.css"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.bundle.scp.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.bundle.scp.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/css"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.bundle.scp.css"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.server.js",
+ "AssetFile": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.server.js",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.server.js",
+ "AssetFile": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.server.js",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "_framework/blazor.server.js"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.web.js",
+ "AssetFile": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.web.js",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "_framework/blazor.web.js",
+ "AssetFile": "${RestorePath}\\microsoft.aspnetcore.app.internal.assets\\${PackageVersion}\\_framework\\blazor.web.js",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "text/javascript"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "_framework/blazor.web.js"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsIntegrationTest.cs b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsIntegrationTest.cs
index b401cc438643..da2b7f0ce170 100644
--- a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsIntegrationTest.cs
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsIntegrationTest.cs
@@ -39,6 +39,45 @@ public void Build_GeneratesJsonManifestAndCopiesItToOutputFolder()
AssertBuildAssets(manifest1, outputPath, intermediateOutputPath);
}
+ [Fact]
+ public void Build_Can_DisableAssetCaching()
+ {
+ var expectedManifest = LoadBuildManifest();
+ var testAsset = "RazorComponentApp";
+ ProjectDirectory = CreateAspNetSdkTestAsset(testAsset);
+
+ var build = CreateBuildCommand(ProjectDirectory);
+ ExecuteCommand(build, "/p:StaticWebAssetsCacheDefineStaticWebAssetsEnabled=false").Should().Pass();
+
+ var intermediateOutputPath = build.GetIntermediateDirectory(DefaultTfm, "Debug").ToString();
+ var outputPath = build.GetOutputDirectory(DefaultTfm, "Debug").ToString();
+
+ // GenerateStaticWebAssetsManifest should generate the manifest file.
+ var path = Path.Combine(intermediateOutputPath, "staticwebassets.build.json");
+ new FileInfo(path).Should().Exist();
+ var manifest = StaticWebAssetsManifest.FromJsonBytes(File.ReadAllBytes(path));
+ AssertManifest(manifest, expectedManifest);
+
+ // GenerateStaticWebAssetsManifest should copy the file to the output folder.
+ var finalPath = Path.Combine(outputPath, "ComponentApp.staticwebassets.runtime.json");
+ new FileInfo(finalPath).Should().Exist();
+
+ // The caches shouldn't exist.
+ // Manifest
+ new FileInfo(Path.Combine(intermediateOutputPath, "rpswa.dswa.cache.json")).Should().NotExist();
+ // Compressed assets
+ new FileInfo(Path.Combine(intermediateOutputPath, "rbcswa.dswa.cache.json")).Should().NotExist();
+ // Initializers
+ new FileInfo(Path.Combine(intermediateOutputPath, "rjimswa.dswa.cache.json")).Should().NotExist();
+ // JS Modules
+ new FileInfo(Path.Combine(intermediateOutputPath, "rjsmcshtml.dswa.cache.json")).Should().NotExist();
+ new FileInfo(Path.Combine(intermediateOutputPath, "rjsmrazor.dswa.cache.json")).Should().NotExist();
+
+ var manifest1 = StaticWebAssetsManifest.FromJsonBytes(File.ReadAllBytes(Path.Combine(intermediateOutputPath, "staticwebassets.build.json")));
+ AssertManifest(manifest1, expectedManifest);
+ AssertBuildAssets(manifest1, outputPath, intermediateOutputPath);
+ }
+
[Fact]
public void Build_DoesNotUpdateManifest_WhenHasNotChanged()
{