diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets
index 7bb59c7aa940..a5822c836a97 100644
--- a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets
+++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets
@@ -264,6 +264,8 @@ Copyright (c) .NET Foundation. All rights reserved.
AssetMode="CurrentProject"
AssetRole="Primary"
AssetMergeSource="$(StaticWebAssetMergeTarget)"
+ FingerprintCandidates="$(StaticWebAssetsFingerprintContent)"
+ FingerprintPatterns="@(StaticWebAssetFingerprintPattern)"
AssetTraitName="JSModule"
AssetTraitValue="JSModuleManifest"
>
@@ -380,6 +382,8 @@ Copyright (c) .NET Foundation. All rights reserved.
AssetMergeSource="$(StaticWebAssetMergeTarget)"
AssetTraitName="JSModule"
AssetTraitValue="JSModuleManifest"
+ FingerprintCandidates="$(StaticWebAssetsFingerprintContent)"
+ FingerprintPatterns="@(StaticWebAssetFingerprintPattern)"
>
@@ -428,6 +432,8 @@ Copyright (c) .NET Foundation. All rights reserved.
SourceType="Discovered"
BasePath="$(StaticWebAssetBasePath)"
AssetMergeSource="$(StaticWebAssetMergeTarget)"
+ FingerprintCandidates="$(StaticWebAssetsFingerprintContent)"
+ FingerprintPatterns="@(StaticWebAssetFingerprintPattern)"
CacheManifestPath="$(_ResolveJSModuleStaticWebAssetsRazorCachePath)">
@@ -441,6 +447,8 @@ Copyright (c) .NET Foundation. All rights reserved.
SourceType="Discovered"
BasePath="$(StaticWebAssetBasePath)"
AssetMergeSource="$(StaticWebAssetMergeTarget)"
+ FingerprintCandidates="$(StaticWebAssetsFingerprintContent)"
+ FingerprintPatterns="@(StaticWebAssetFingerprintPattern)"
CacheManifestPath="$(_ResolveJSModuleStaticWebAssetsCshtmlCachePath)">
diff --git a/src/StaticWebAssetsSdk/Tasks/JSModules/ApplyJsModules.cs b/src/StaticWebAssetsSdk/Tasks/JSModules/ApplyJsModules.cs
index 1a844a31d3d0..cfa55f761c5a 100644
--- a/src/StaticWebAssetsSdk/Tasks/JSModules/ApplyJsModules.cs
+++ b/src/StaticWebAssetsSdk/Tasks/JSModules/ApplyJsModules.cs
@@ -39,7 +39,7 @@ public override bool Execute()
unmatchedJsModules,
jsModulesByRazorItem,
"RazorComponent",
- "(.*)\\.razor\\.js$",
+ "(.*?)(?:#\\[.*?\\](?:\\?|!)?)?(\\.razor\\.js)$",
"$1.razor");
}
@@ -52,7 +52,7 @@ public override bool Execute()
unmatchedJsModules,
jsModulesByRazorItem,
"View",
- "(.*)\\.cshtml\\.js$",
+ "(.*?)(?:#\\[.*?\\](?:\\?|!)?)?(\\.cshtml\\.js)$",
"$1.cshtml");
}
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselineFactory.cs b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselineFactory.cs
index 70f8467f3dec..aada23bdd62a 100644
--- a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselineFactory.cs
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselineFactory.cs
@@ -27,11 +27,15 @@ public partial class StaticWebAssetsBaselineFactory
[GeneratedRegex("""(.*\.)([0123456789abcdefghijklmnopqrstuvwxyz]{10})(\.lib\.module\.js)((?:\.gz)|(?:\.br))?$""", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)]
private static partial Regex JSInitializerRegex();
+ [GeneratedRegex("""(.*\.)([0123456789abcdefghijklmnopqrstuvwxyz]{10})(\.modules\.json)((?:\.gz)|(?:\.br))?$""", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)]
+ private static partial Regex JSModuleManifestRegex();
+
private static readonly IList<(Regex expression, string replacement)> WellKnownFileNamePatternsAndReplacements =
[
(ScopedProjectBundleRegex(),"$1__fingerprint__$3$4"),
(ScopedAppBundleRegex(),"$1__fingerprint__$3$4"),
(JSInitializerRegex(), "$1__fingerprint__$3$4"),
+ (JSModuleManifestRegex(), "$1__fingerprint__$3$4"),
(EmbeddedFingerprintExpression(), "#[.{fingerprint=__fingerprint__}]$1"),
(FingerprintedSiteCssRegex(), "fingerprint-site$1__fingerprint__$3$4"),
];
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.files.json b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.files.json
index 2e8855bb22d7..7e0b1e229e08 100644
--- a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.files.json
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.files.json
@@ -17,21 +17,21 @@
"${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
"${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
"${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.br",
+ "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
+ "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
- "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.br",
- "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.gz",
"${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\jsmodules.publish.manifest.json",
"${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
"${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css",
"${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint=__fingerprint__}]!.lib.module.js.br",
"${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint=__fingerprint__}]!.lib.module.js.gz",
+ "${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
+ "${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
"${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
"${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint}]!.lib.module.js",
+ "${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint}]?.modules.json",
"${OutputPath}\\wwwroot\\ComponentApp#[.{fingerprint}]?.styles.css",
- "${OutputPath}\\wwwroot\\ComponentApp.modules.json",
- "${OutputPath}\\wwwroot\\ComponentApp.modules.json.br",
- "${OutputPath}\\wwwroot\\ComponentApp.modules.json.gz",
"${OutputPath}\\wwwroot\\_framework\\blazor.server.js",
"${OutputPath}\\wwwroot\\_framework\\blazor.server.js.br",
"${OutputPath}\\wwwroot\\_framework\\blazor.server.js.gz",
diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.staticwebassets.json
index b525c9f8a244..a574e912048f 100644
--- a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.staticwebassets.json
+++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsBaselines/Publish_PublishesJsModuleBundleBundleToTheRightLocation.Publish.staticwebassets.json
@@ -178,35 +178,35 @@
"LastWriteTime": "0001-01-01T00:00:00+00:00"
},
{
- "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
"SourceId": "ComponentApp",
"SourceType": "Computed",
"ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\",
"BasePath": "_content/ComponentApp",
- "RelativePath": "ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
- "AssetKind": "All",
+ "RelativePath": "ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
+ "AssetKind": "Publish",
"AssetMode": "CurrentProject",
"AssetRole": "Alternative",
"AssetMergeBehavior": "",
"AssetMergeSource": "",
- "RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
+ "RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\jsmodules.publish.manifest.json",
"AssetTraitName": "Content-Encoding",
"AssetTraitValue": "br",
"Fingerprint": "__fingerprint__",
"Integrity": "__integrity__",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
- "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
"FileLength": -1,
"LastWriteTime": "0001-01-01T00:00:00+00:00"
},
{
- "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.br",
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"SourceId": "ComponentApp",
"SourceType": "Computed",
"ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\",
"BasePath": "_content/ComponentApp",
- "RelativePath": "ComponentApp.modules.json.br",
+ "RelativePath": "ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"AssetKind": "Publish",
"AssetMode": "CurrentProject",
"AssetRole": "Alternative",
@@ -214,35 +214,35 @@
"AssetMergeSource": "",
"RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\jsmodules.publish.manifest.json",
"AssetTraitName": "Content-Encoding",
- "AssetTraitValue": "br",
+ "AssetTraitValue": "gzip",
"Fingerprint": "__fingerprint__",
"Integrity": "__integrity__",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
- "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\_content\\ComponentApp\\ComponentApp.modules.json.br",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"FileLength": -1,
"LastWriteTime": "0001-01-01T00:00:00+00:00"
},
{
- "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.gz",
+ "Identity": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
"SourceId": "ComponentApp",
"SourceType": "Computed",
"ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\",
"BasePath": "_content/ComponentApp",
- "RelativePath": "ComponentApp.modules.json.gz",
- "AssetKind": "Publish",
+ "RelativePath": "ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "AssetKind": "All",
"AssetMode": "CurrentProject",
"AssetRole": "Alternative",
"AssetMergeBehavior": "",
"AssetMergeSource": "",
- "RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\jsmodules.publish.manifest.json",
+ "RelatedAsset": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
"AssetTraitName": "Content-Encoding",
- "AssetTraitValue": "gzip",
+ "AssetTraitValue": "br",
"Fingerprint": "__fingerprint__",
"Integrity": "__integrity__",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
- "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\_content\\ComponentApp\\ComponentApp.modules.json.gz",
+ "OriginalItemSpec": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
"FileLength": -1,
"LastWriteTime": "0001-01-01T00:00:00+00:00"
},
@@ -298,7 +298,7 @@
"SourceType": "Computed",
"ContentRoot": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\",
"BasePath": "_content/ComponentApp",
- "RelativePath": "ComponentApp.modules.json",
+ "RelativePath": "ComponentApp#[.{fingerprint}]?.modules.json",
"AssetKind": "Publish",
"AssetMode": "CurrentProject",
"AssetRole": "Primary",
@@ -1977,8 +1977,8 @@
]
},
{
- "Route": "ComponentApp.styles.css.br",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Route": "ComponentApp.modules.json.br",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
"Selectors": [],
"ResponseHeaders": [
{
@@ -1999,7 +1999,7 @@
},
{
"Name": "Content-Type",
- "Value": "text/css"
+ "Value": "application/json"
},
{
"Name": "ETag",
@@ -2022,8 +2022,8 @@
]
},
{
- "Route": "ComponentApp.__fingerprint__.styles.css.br",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Route": "ComponentApp.__fingerprint__.modules.json.br",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
"Selectors": [],
"ResponseHeaders": [
{
@@ -2044,7 +2044,7 @@
},
{
"Name": "Content-Type",
- "Value": "text/css"
+ "Value": "application/json"
},
{
"Name": "ETag",
@@ -2070,13 +2070,13 @@
},
{
"Name": "label",
- "Value": "ComponentApp.styles.css.br"
+ "Value": "ComponentApp.modules.json.br"
}
]
},
{
- "Route": "ComponentApp.styles.css",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Route": "ComponentApp.modules.json",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
"Selectors": [
{
"Name": "Content-Encoding",
@@ -2103,7 +2103,7 @@
},
{
"Name": "Content-Type",
- "Value": "text/css"
+ "Value": "application/json"
},
{
"Name": "ETag",
@@ -2130,8 +2130,8 @@
]
},
{
- "Route": "ComponentApp.__fingerprint__.styles.css",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Route": "ComponentApp.__fingerprint__.modules.json",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.br",
"Selectors": [
{
"Name": "Content-Encoding",
@@ -2158,7 +2158,7 @@
},
{
"Name": "Content-Type",
- "Value": "text/css"
+ "Value": "application/json"
},
{
"Name": "ETag",
@@ -2188,13 +2188,13 @@
},
{
"Name": "label",
- "Value": "ComponentApp.styles.css"
+ "Value": "ComponentApp.modules.json"
}
]
},
{
- "Route": "ComponentApp.modules.json.br",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.br",
+ "Route": "ComponentApp.modules.json.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"Selectors": [],
"ResponseHeaders": [
{
@@ -2207,7 +2207,52 @@
},
{
"Name": "Content-Encoding",
- "Value": "br"
+ "Value": "gzip"
+ },
+ {
+ "Name": "Content-Length",
+ "Value": "__content-length__"
+ },
+ {
+ "Name": "Content-Type",
+ "Value": "application/json"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ },
+ {
+ "Name": "Vary",
+ "Value": "Content-Encoding"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.__fingerprint__.modules.json.gz",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip"
},
{
"Name": "Content-Length",
@@ -2231,19 +2276,27 @@
}
],
"EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
{
"Name": "integrity",
"Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.modules.json.gz"
}
]
},
{
"Route": "ComponentApp.modules.json",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.br",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
"Selectors": [
{
"Name": "Content-Encoding",
- "Value": "br",
+ "Value": "gzip",
"Quality": "__quality__"
}
],
@@ -2258,7 +2311,7 @@
},
{
"Name": "Content-Encoding",
- "Value": "br"
+ "Value": "gzip"
},
{
"Name": "Content-Length",
@@ -2293,9 +2346,15 @@
]
},
{
- "Route": "ComponentApp.modules.json.gz",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.gz",
- "Selectors": [],
+ "Route": "ComponentApp.__fingerprint__.modules.json",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.modules.json.gz",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "gzip",
+ "Quality": "__quality__"
+ }
+ ],
"ResponseHeaders": [
{
"Name": "Accept-Ranges",
@@ -2303,7 +2362,7 @@
},
{
"Name": "Cache-Control",
- "Value": "no-cache"
+ "Value": "max-age=31536000, immutable"
},
{
"Name": "Content-Encoding",
@@ -2321,6 +2380,10 @@
"Name": "ETag",
"Value": "__etag__"
},
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
{
"Name": "Last-Modified",
"Value": "__last-modified__"
@@ -2331,19 +2394,125 @@
}
],
"EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
{
"Name": "integrity",
"Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.modules.json"
}
]
},
{
- "Route": "ComponentApp.modules.json",
- "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp.modules.json.gz",
+ "Route": "ComponentApp.styles.css.br",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "no-cache"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "br"
+ },
+ {
+ "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.br",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Selectors": [],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "br"
+ },
+ {
+ "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.br"
+ }
+ ]
+ },
+ {
+ "Route": "ComponentApp.styles.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
"Selectors": [
{
"Name": "Content-Encoding",
- "Value": "gzip",
+ "Value": "br",
"Quality": "__quality__"
}
],
@@ -2358,7 +2527,7 @@
},
{
"Name": "Content-Encoding",
- "Value": "gzip"
+ "Value": "br"
},
{
"Name": "Content-Length",
@@ -2366,7 +2535,7 @@
},
{
"Name": "Content-Type",
- "Value": "application/json"
+ "Value": "text/css"
},
{
"Name": "ETag",
@@ -2392,6 +2561,69 @@
}
]
},
+ {
+ "Route": "ComponentApp.__fingerprint__.styles.css",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.br",
+ "Selectors": [
+ {
+ "Name": "Content-Encoding",
+ "Value": "br",
+ "Quality": "__quality__"
+ }
+ ],
+ "ResponseHeaders": [
+ {
+ "Name": "Accept-Ranges",
+ "Value": "bytes"
+ },
+ {
+ "Name": "Cache-Control",
+ "Value": "max-age=31536000, immutable"
+ },
+ {
+ "Name": "Content-Encoding",
+ "Value": "br"
+ },
+ {
+ "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.br",
"AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\publish\\_content\\ComponentApp\\_framework\\blazor.server.js.br",
@@ -2861,6 +3093,51 @@
}
]
},
+ {
+ "Route": "ComponentApp.__fingerprint__.modules.json",
+ "AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\jsmodules\\jsmodules.publish.manifest.json",
+ "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": "application/json"
+ },
+ {
+ "Name": "ETag",
+ "Value": "__etag__"
+ },
+ {
+ "Name": "Last-Modified",
+ "Value": "__last-modified__"
+ }
+ ],
+ "EndpointProperties": [
+ {
+ "Name": "fingerprint",
+ "Value": "__fingerprint__"
+ },
+ {
+ "Name": "integrity",
+ "Value": "__integrity__"
+ },
+ {
+ "Name": "label",
+ "Value": "ComponentApp.modules.json"
+ }
+ ]
+ },
{
"Route": "ComponentApp.styles.css",
"AssetFile": "${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",