diff --git a/aspnetcore/blazor/globalization-localization.md b/aspnetcore/blazor/globalization-localization.md
index 669b6df1987d..af9c1898fa3f 100644
--- a/aspnetcore/blazor/globalization-localization.md
+++ b/aspnetcore/blazor/globalization-localization.md
@@ -496,6 +496,8 @@ Use the `CultureExample1` component shown in the [Demonstration component](#demo
## Dynamically set the server-side culture by user preference
+
+
:::moniker range=">= aspnetcore-8.0"
Examples of locations where an app might store a user's preference include in [browser local storage](https://developer.mozilla.org/docs/Web/API/Window/localStorage) (common for client-side rendering), in a localization cookie or database (common for server-side rendering), or in an external service attached to an external database and accessed by a [web API](xref:blazor/call-web-api).
diff --git a/aspnetcore/blazor/host-and-deploy/server.md b/aspnetcore/blazor/host-and-deploy/server.md
index ffff9190dd78..deb6cbad37ec 100644
--- a/aspnetcore/blazor/host-and-deploy/server.md
+++ b/aspnetcore/blazor/host-and-deploy/server.md
@@ -354,7 +354,6 @@ In the following example:
* The app listens for traffic on port 5000.
```
-ProxyRequests On
ProxyPreserveHost On
ProxyPassMatch ^/_blazor/(.*) http://localhost:5000/_blazor/$1
ProxyPass /_blazor ws://localhost:5000/_blazor
diff --git a/aspnetcore/blazor/host-and-deploy/webassembly.md b/aspnetcore/blazor/host-and-deploy/webassembly.md
index b6868ca9cb09..991833cdf616 100644
--- a/aspnetcore/blazor/host-and-deploy/webassembly.md
+++ b/aspnetcore/blazor/host-and-deploy/webassembly.md
@@ -759,7 +759,6 @@ The following example hosts the app at a root URL (no sub-app path):
- ProxyRequests On
ProxyPreserveHost On
ProxyPass / http://localhost:5000/
ProxyPassReverse / http://localhost:5000/
@@ -780,7 +779,6 @@ To configure the server to host the app at a sub-app path, the `{PATH}` placehol
- ProxyRequests On
ProxyPreserveHost On
ProxyPass / http://localhost:5000/{PATH}
ProxyPassReverse / http://localhost:5000/{PATH}
@@ -801,7 +799,6 @@ For an app that responds to requests at `/blazor`:
- ProxyRequests On
ProxyPreserveHost On
ProxyPass / http://localhost:5000/blazor
ProxyPassReverse / http://localhost:5000/blazor
diff --git a/aspnetcore/blazor/includes/location-client-and-server-net-6-or-later.md b/aspnetcore/blazor/includes/location-client-and-server-net-6-or-later.md
deleted file mode 100644
index d45e0205c842..000000000000
--- a/aspnetcore/blazor/includes/location-client-and-server-net-6-or-later.md
+++ /dev/null
@@ -1,40 +0,0 @@
-Throughout this article, the terms **client**/**client-side** and **server**/**server-side** are used to distinguish locations where app code executes:
-
-:::moniker range=">= aspnetcore-8.0"
-
-* **Client**/**client-side**
- * Client-side rendering (CSR) and interactivity of a Blazor Web App. The `Program` file is `Program.cs` of the client project (`BlazorWeb-CSharp.Client`). Blazor script start configuration is found in the `App` component (`Components/App.razor`) of the server project (`BlazorWeb-CSharp`).
- * A Blazor WebAssembly app. The `Program` file is `Program.cs`. Blazor script start configuration is found in the `wwwroot/index.html` file.
-* **Server**/**server-side**: Server-side rendering (SSR) and interactivity of a Blazor Web App. The `Program` file is `Program.cs` of the server project (`BlazorWeb-CSharp`). Blazor script start configuration is found in the `App` component (`Components/App.razor`).
-
-Routable components with an `@page` directive are placed in the `Components/Pages` folder. Non-routable shared components are placed in the `Components` folder.
-
-:::moniker-end
-
-:::moniker range=">= aspnetcore-7.0 < aspnetcore-8.0"
-
-* **Client**/**client-side**
- * The **`Client`** project of a hosted Blazor WebAssembly app.
- * A Blazor WebAssembly app.
- * Blazor script start configuration is found in the `wwwroot/index.html` file.
- * The `Program` file is `Program.cs`.
-* **Server**/**server-side**
- * The **`Server`** project of a hosted Blazor WebAssembly app.
- * A Blazor Server app. Blazor script start configuration is found in `Pages/_Host.cshtml`.
- * The `Program` file is `Program.cs`.
-
-:::moniker-end
-
-:::moniker range="< aspnetcore-7.0"
-
-* **Client**/**client-side**
- * The **`Client`** project of a hosted Blazor WebAssembly app.
- * A Blazor WebAssembly app.
- * Blazor script start configuration is found in the `wwwroot/index.html` file.
- * The `Program` file is `Program.cs`.
-* **Server**/**server-side**
- * The **`Server`** project of a hosted Blazor WebAssembly app.
- * A Blazor Server app. Blazor script start configuration is found in `Pages/_Layout.cshtml`.
- * The `Program` file is `Program.cs`.
-
-:::moniker-end
diff --git a/aspnetcore/blazor/includes/location-client-and-server-net-7-or-later.md b/aspnetcore/blazor/includes/location-client-and-server-net-7-or-later.md
deleted file mode 100644
index 552544bb65ec..000000000000
--- a/aspnetcore/blazor/includes/location-client-and-server-net-7-or-later.md
+++ /dev/null
@@ -1,26 +0,0 @@
-Throughout this article, the terms **client**/**client-side** and **server**/**server-side** are used to distinguish locations where app code executes:
-
-:::moniker range=">= aspnetcore-8.0"
-
-* **Client**/**client-side**
- * Client-side rendering (CSR) and interactivity of a Blazor Web App. The `Program` file is `Program.cs` of the client project (`BlazorWeb-CSharp.Client`). Blazor script start configuration is found in the `App` component (`Components/App.razor`) of the server project (`BlazorWeb-CSharp`).
- * A Blazor WebAssembly app. The `Program` file is `Program.cs`. Blazor script start configuration is found in the `wwwroot/index.html` file.
-* **Server**/**server-side**: Server-side rendering (SSR) and interactivity of a Blazor Web App. The `Program` file is `Program.cs` of the server project (`BlazorWeb-CSharp`). Blazor script start configuration is found in the `App` component (`Components/App.razor`).
-
-Routable components with an `@page` directive are placed in the `Components/Pages` folder. Non-routable shared components are placed in the `Components` folder.
-
-:::moniker-end
-
-:::moniker range="< aspnetcore-8.0"
-
-* **Client**/**client-side**
- * The **`Client`** project of a hosted Blazor WebAssembly app.
- * A Blazor WebAssembly app.
- * Blazor script start configuration is found in the `wwwroot/index.html` file.
- * The `Program` file is `Program.cs`.
-* **Server**/**server-side**
- * The **`Server`** project of a hosted Blazor WebAssembly app.
- * A Blazor Server app. Blazor script start configuration is found in `Pages/_Host.cshtml`.
- * The `Program` file is `Program.cs`.
-
-:::moniker-end
diff --git a/aspnetcore/blazor/includes/location-client-and-server-net-8-or-later.md b/aspnetcore/blazor/includes/location-client-and-server-net-8-or-later.md
deleted file mode 100644
index ef77fa700673..000000000000
--- a/aspnetcore/blazor/includes/location-client-and-server-net-8-or-later.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Throughout this article, the terms **client**/**client-side** and **server**/**server-side** are used to distinguish locations where app code executes:
-
-* **Client**/**client-side**
- * Client-side rendering (CSR) and interactivity of a Blazor Web App. The `Program` file is `Program.cs` of the client project (`BlazorWeb-CSharp.Client`). Blazor script start configuration is found in the `App` component (`Components/App.razor`) of the server project (`BlazorWeb-CSharp`).
- * A Blazor WebAssembly app. The `Program` file is `Program.cs`. Blazor script start configuration is found in the `wwwroot/index.html` file.
-* **Server**/**server-side**: Server-side rendering (SSR) and interactivity of a Blazor Web App. The `Program` file is `Program.cs` of the server project (`BlazorWeb-CSharp`). Blazor script start configuration is found in the `App` component (`Components/App.razor`).
-
-Routable components with an `@page` directive are placed in the `Components/Pages` folder. Non-routable shared components are placed in the `Components` folder.
diff --git a/aspnetcore/blazor/security/content-security-policy.md b/aspnetcore/blazor/security/content-security-policy.md
index 0f9caf724cca..197bf61a0d01 100644
--- a/aspnetcore/blazor/security/content-security-policy.md
+++ b/aspnetcore/blazor/security/content-security-policy.md
@@ -14,6 +14,8 @@ uid: blazor/security/content-security-policy
This article explains how to use a [Content Security Policy (CSP)](https://developer.mozilla.org/docs/Web/HTTP/CSP) with ASP.NET Core Blazor apps to help protect against [Cross-Site Scripting (XSS)](xref:security/cross-site-scripting) attacks.
+[!INCLUDE[](~/blazor/includes/location-client-and-server-net31-or-later.md)]
+
[Cross-Site Scripting (XSS)](xref:security/cross-site-scripting) is a security vulnerability where an attacker places one or more malicious client-side scripts into an app's rendered content. A CSP helps protect against XSS attacks by informing the browser of valid:
* Sources for loaded content, including scripts, stylesheets, images, and plugins.
@@ -27,7 +29,7 @@ CSP is supported in most modern desktop and mobile browsers, including Chrome, E
## Policy directives
-Minimally, specify the following directives and sources for Blazor apps. Add additional directives and sources as needed. The following directives are used in the *Apply the policy* section of this article, where example security policies for Blazor WebAssembly and Blazor Server are provided:
+Minimally, specify the following directives and sources for Blazor apps. Add additional directives and sources as needed. The following directives are used in the *Apply the policy* section of this article, where example security policies for Blazor apps are provided:
:::moniker range=">= aspnetcore-8.0"
@@ -39,10 +41,10 @@ Minimally, specify the following directives and sources for Blazor apps. Add add
* [object-src](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy/object-src): Indicates valid sources for the `