Konfigurera Azure Static Web Apps
Du kan definiera konfigurationen för Azure Static Web Apps i filen staticwebapp.config.json , som styr följande inställningar:
- Routning
- Autentisering
- Auktorisering
- Reservregler
- Åsidosättningar av HTTP-svar
- Globala HTTP-huvuddefinitioner
- Anpassade MIME-typer
- Nätverk
Kommentar
routes.json som tidigare användes för att konfigurera routning är inaktuell. Använd staticwebapp.config.json enligt beskrivningen i den här artikeln för att konfigurera routning och andra inställningar för din statiska webbapp.
Det här dokumentet beskriver hur du konfigurerar Azure Static Web Apps, som är en fristående produkt och som är skild från den statiska webbplatsvärdfunktionen i Azure Storage.
Sökväg
Den rekommenderade platsen för staticwebapp.config.json finns i mappen som app_location
i arbetsflödesfilen. Du kan dock placera filen i valfri undermapp i mappen som angetts app_location
som . Om det finns ett byggsteg måste du dessutom se till att byggsteget matar ut filen till roten för output_location.
Mer information finns i exempelkonfigurationsfilen .
Viktigt!
Den inaktuella routes.json-filen ignoreras om det finns en staticwebapp.config.json.
Vägar
Du kan definiera regler för en eller flera vägar i din statiska webbapp. Med routningsregler kan du begränsa åtkomsten till användare i specifika roller eller utföra åtgärder som omdirigering eller omskrivning. Vägar definieras som en matris med routningsregler. Se exempelkonfigurationsfilen för användningsexempel.
- Regler definieras i matrisen
routes
, även om du bara har en väg. - Regler utvärderas i den ordning de visas i matrisen
routes
. - Regelutvärderingen stoppas vid den första matchningen. En matchning inträffar när
route
egenskapen och ett värde i matrisenmethods
(om det anges) matchar begäran. Varje begäran kan matcha högst en regel.
Routningsproblemen överlappar avsevärt autentiseringen (identifierar användaren) och auktoriseringsbegreppen (tilldelar funktioner till användaren). Läs autentiserings- och auktoriseringsguiden tillsammans med den här artikeln.
Definiera vägar
Varje regel består av ett vägmönster, tillsammans med en eller flera av de valfria regelegenskaperna. Routningsregler definieras i matrisen routes
. Se exempelkonfigurationsfilen för användningsexempel.
Viktigt!
route
Endast egenskaperna och methods
(om de anges) används för att avgöra om en regel matchar en begäran.
Regelegenskap | Obligatoriskt | Standardvärde | Kommentar |
---|---|---|---|
route |
Ja | saknas | Det vägmönster som anroparen begär.
|
methods |
Nej | Alla metoder | Definierar en matris med begärandemetoder som matchar en väg. Tillgängliga metoder är: GET , HEAD , POST , PUT , DELETE , CONNECT , OPTIONS , TRACE och PATCH . |
rewrite |
Nej | saknas | Definierar filen eller sökvägen som returneras från begäran.
|
redirect |
Nej | saknas | Definierar målet för fil- eller sökvägsomdirigering för en begäran. |
statusCode |
Nej | 301 eller 302 för omdirigeringar |
HTTP-statuskoden för svaret. |
headers |
Nej | saknas | Uppsättning HTTP-huvuden som lagts till i svaret.
|
allowedRoles |
Nej | anonym | Definierar en matris med rollnamn som krävs för att komma åt en väg.
|
Varje egenskap har ett specifikt syfte i pipelinen för begäran/svar.
Syfte | Egenskaper |
---|---|
Matcha vägar | route , methods |
Bearbeta efter att en regel har matchats och auktoriserats | rewrite (ändrar begäran)redirect , headers , statusCode (ändrar svar) |
Auktorisera efter att en väg har matchats | allowedRoles |
Ange routningsmönster
Egenskapen route
kan vara en exakt väg eller ett jokerteckenmönster.
Exakt väg
Om du vill definiera en exakt väg placerar du filens fullständiga sökväg i route
egenskapen .
{
"route": "/profile/index.html",
"allowedRoles": ["authenticated"]
}
Den här regeln matchar begäranden för filen /profile/index.html. Eftersom index.html är standardfilen matchar regeln även begäranden för mappen (/profil eller /profil/).
Viktigt!
Om du använder en mappsökväg (/profile
eller ) i route
egenskapen matchar den inte begäranden för filen /profile/index.html/profile/
. När du skyddar en väg som hanterar en fil använder du alltid den fullständiga sökvägen för filen, till exempel /profile/index.html
.
Mönster för jokertecken
Jokerteckenregler matchar alla begäranden i ett vägmönster och stöds endast i slutet av en sökväg. Se exempelkonfigurationsfilen för användningsexempel.
Om du till exempel vill implementera vägar för ett kalenderprogram kan du skriva om alla URL:er som faller under kalendervägen för att hantera en enda fil.
{
"route": "/calendar*",
"rewrite": "/calendar.html"
}
Den calendar.html filen kan sedan använda routning på klientsidan för att hantera en annan vy för URL-varianter som /calendar/january/1
, /calendar/2020
och /calendar/overview
.
Kommentar
Ett vägmönster för /calendar/*
matchar alla begäranden under sökvägen /calendar/ . Den matchar dock inte begäranden för sökvägarna /kalender eller /calendar.html. Använd /calendar*
för att matcha alla begäranden som börjar med /calendar.
Du kan filtrera jokerteckenmatchningar efter filnamnstillägg. Om du till exempel vill lägga till en regel som endast matchar HTML-filer i en viss sökväg kan du skapa följande regel:
{
"route": "/articles/*.html",
"headers": {
"Cache-Control": "public, max-age=604800, immutable"
}
}
Om du vill filtrera på flera filnamnstillägg inkluderar du alternativen i klammerparenteser, som du ser i det här exemplet:
{
"route": "/images/thumbnails/*.{png,jpg,gif}",
"headers": {
"Cache-Control": "public, max-age=604800, immutable"
}
}
Vanliga användningsfall för jokerteckenvägar är:
- Hantera en specifik fil för ett helt sökvägsmönster
- Framtvinga autentiserings- och auktoriseringsregler
- Implementera specialiserade cachelagringsregler
Säkra vägar med roller
Vägar skyddas genom att lägga till ett eller flera rollnamn i en regels allowedRoles
matris. Se exempelkonfigurationsfilen för användningsexempel.
Viktigt!
Routningsregler kan bara skydda HTTP-begäranden till vägar som hanteras från Static Web Apps. Många klientdelsramverk använder routning på klientsidan som ändrar vägar i webbläsaren utan att skicka begäranden till Static Web Apps. Routningsregler skyddar inte vägar på klientsidan. Klienter bör anropa HTTP-API:er för att hämta känsliga data. Kontrollera att API:er verifierar en användares identitet innan du returnerar data.
Som standard tillhör varje användare den inbyggda anonymous
rollen och alla inloggade användare är medlemmar authenticated
i rollen. Alternativt kan användare associeras med anpassade roller via inbjudningar.
Om du till exempel vill begränsa en väg till endast autentiserade användare lägger du till den inbyggda rollen i authenticated
matrisen allowedRoles
.
{
"route": "/profile*",
"allowedRoles": ["authenticated"]
}
Du kan skapa nya roller efter behov i matrisen allowedRoles
. Om du vill begränsa en väg till endast administratörer kan du definiera din egen roll med namnet administrator
, i matrisen allowedRoles
.
{
"route": "/admin*",
"allowedRoles": ["administrator"]
}
- Du har fullständig kontroll över rollnamn; Det finns ingen lista som dina roller måste följa.
- Enskilda användare är kopplade till roller via inbjudningar.
Viktigt!
När du skyddar innehåll anger du exakta filer när det är möjligt. Om du har många filer att skydda använder du jokertecken efter ett delat prefix. Till exempel: /profile*
skyddar alla möjliga vägar som börjar med /profile, inklusive /profile.
Begränsa åtkomsten till hela programmet
Du vill ofta kräva autentisering för varje väg i ditt program. Om du vill låsa dina vägar lägger du till en regel som matchar alla vägar och inkluderar den inbyggda rollen i authenticated
matrisen allowedRoles
.
I följande exempelkonfiguration blockeras anonym åtkomst och alla oautentiserade användare omdirigeras till inloggningssidan för Microsoft Entra.
{
"routes": [
{
"route": "/*",
"allowedRoles": ["authenticated"]
}
],
"responseOverrides": {
"401": {
"statusCode": 302,
"redirect": "/.auth/login/aad"
}
}
}
Kommentar
Som standard är alla förkonfigurerade identitetsprovidrar aktiverade. Information om hur du blockerar en autentiseringsprovider finns i Autentisering och auktorisering.
Reservvägar
Ensidesprogram förlitar sig ofta på routning på klientsidan. Dessa routningsregler på klientsidan uppdaterar webbläsarens fönsterplats utan att göra begäranden tillbaka till servern. Om du uppdaterar sidan eller går direkt till URL:er som genereras av routningsregler på klientsidan, krävs en återställningsväg på serversidan för att hantera rätt HTML-sida. Återställningssidan betecknas ofta som index.html för din app på klientsidan.
Kommentar
Routningsregler tillämpas inte på begäranden som utlöser navigationFallback
.
Du kan definiera en reservregel genom att lägga till ett navigationFallback
avsnitt. I följande exempel returneras /index.html för alla statiska filbegäranden som inte matchar en distribuerad fil.
{
"navigationFallback": {
"rewrite": "/index.html"
}
}
Du kan styra vilka begäranden som returnerar återställningsfilen genom att definiera ett filter. I följande exempel undantas begäranden för vissa vägar i mappen /images och alla filer i mappen /css från att returnera återställningsfilen.
{
"navigationFallback": {
"rewrite": "/index.html",
"exclude": ["/images/*.{png,jpg,gif}", "/css/*"]
}
}
Med följande katalogstruktur skulle till exempel ovanstående återställningsregel för navigering resultera i de resultat som beskrivs i följande tabell.
├── images
│ ├── logo.png
│ ├── headshot.jpg
│ └── screenshot.gif
│
├── css
│ └── global.css
│
├── about.html
└── index.html
Begäranden till... | Returnerar... | med statusen ... |
---|---|---|
/om/ | Filen /index.html . | 200 |
/images/logo.png | Bildfilen. | 200 |
/images/icon.svg | Filen /index.html – eftersom filnamnstillägget svg inte visas i /images/*.{png,jpg,gif} filtret. |
200 |
/images/unknown.png | Det gick inte att hitta filen. | 404 |
/css/unknown.css | Det gick inte att hitta filen. | 404 |
/css/global.css | Formatmallsfilen. | 200 |
/about.html | HTML-sidan. | 200 |
Andra sökvägar utanför mapparna /images eller /css som inte matchar sökvägen till en distribuerad fil. | Filen /index.html . | 200 |
Viktigt!
Om du migrerar från den inaktuella routes.json filen ska du inte inkludera den äldre återställningsvägen ("route": "/*"
) i routningsreglerna.
Globala rubriker
Avsnittet globalHeaders
innehåller en uppsättning HTTP-huvuden som tillämpas på varje svar, om de inte åsidosätts av en routningshuvudregel , annars returneras union av både huvudena från vägen och de globala rubrikerna.
Se exempelkonfigurationsfilen för användningsexempel.
Om du vill ta bort en rubrik anger du värdet till en tom sträng (""
).
Några vanliga användningsfall för globala rubriker är:
- Anpassade cachelagringsregler
- Säkerhetsprinciper
- Kodningsinställningar
- Cors-konfiguration (cross-origin resource sharing)
I följande exempel implementeras en anpassad CORS-konfiguration.
{
"globalHeaders": {
"Access-Control-Allow-Origin": "https://example.com",
"Access-Control-Allow-Methods": "POST, GET, OPTIONS"
}
}
Kommentar
Globala rubriker påverkar inte API-svar. Rubriker i API-svar bevaras och returneras till klienten.
Åsidosättningar av svar
Avsnittet responseOverrides
ger en möjlighet att definiera ett anpassat svar när servern annars skulle returnera en felkod. Se exempelkonfigurationsfilen för användningsexempel.
Följande HTTP-koder är tillgängliga för åsidosättning:
Statuskod | Innebörd | Möjlig orsak |
---|---|---|
400 | Felaktig begäran | Ogiltig inbjudningslänk |
401 | Behörighet saknas | Begäran till begränsade sidor när den inte autentiseras |
403 | Ej tillåtet |
|
404 | Hittades inte | Filen hittades inte |
Följande exempelkonfiguration visar hur du åsidosätter en felkod.
{
"responseOverrides": {
"400": {
"rewrite": "/invalid-invitation-error.html"
},
"401": {
"statusCode": 302,
"redirect": "/login"
},
"403": {
"rewrite": "/custom-forbidden-page.html"
},
"404": {
"rewrite": "/custom-404.html"
}
}
}
Plattform
Avsnittet platform
styr plattformsspecifika inställningar, till exempel API-språkkörningsversionen.
Välj api-språkkörningsversionen
Om du vill konfigurera api-språkkörningsversionen anger du apiRuntime
egenskapen i platform
avsnittet till något av följande värden som stöds.
Språkkörningsversion | Operativsystem | Azure Functions-version | apiRuntime värde |
Slutdatum för support |
---|---|---|---|---|
.NET Core 3.1 | Windows | 3.x | dotnet:3.1 |
3 december 2022 |
.NET 6.0 pågår | Windows | 4.x | dotnet:6.0 |
- |
.NET 6.0 isolerad | Windows | 4.x | dotnet-isolated:6.0 |
- |
.NET 7.0 isolerad | Windows | 4.x | dotnet-isolated:7.0 |
- |
.NET 8.0 isolerad | Windows | 4.x | dotnet-isolated:8.0 |
- |
Node.js 12.x | Linux | 3.x | node:12 |
3 december 2022 |
Node.js 14.x | Linux | 4.x | node:14 |
- |
Node.js 16.x | Linux | 4.x | node:16 |
- |
Node.js 18.x | Linux | 4.x | node:18 |
- |
Node.js 20.x (förhandsversion) | Linux | 4.x | node:20 |
- |
Python 3.8 | Linux | 4.x | python:3.8 |
- |
Python 3.9 | Linux | 4.x | python:3.9 |
- |
Python 3.10 | Linux | 4.x | python:3.10 |
- |
.NET
Om du vill ändra körningsversionen i en .NET-app ändrar du TargetFramework
värdet i csproj-filen . Om du anger ett apiRuntime
värde i filen staticwebapp.config.json är det valfritt, men se till att värdet matchar det du definierar i csproj-filen .
I följande exempel visas hur du uppdaterar elementet TargetFramework
för NET 8.0 som API-språkkörningsversion i csproj-filen .
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
...
</PropertyGroup>
...
Node.js
Följande exempelkonfiguration visar hur du använder apiRuntime
egenskapen för att välja Node.js 16 som API-språkkörningsversion i staticwebapp.config.json-filen.
{
...
"platform": {
"apiRuntime": "node:16"
}
...
}
Python
Följande exempelkonfiguration visar hur du använder apiRuntime
egenskapen för att välja Python 3.8 som API-språkkörningsversion i staticwebapp.config.json-filen.
{
...
"platform": {
"apiRuntime": "python:3.8"
}
...
}
Nätverk
Avsnittet networking
styr nätverkskonfigurationen för din statiska webbapp. Om du vill begränsa åtkomsten till din app anger du en lista över tillåtna IP-adressblock i allowedIpRanges
. Mer information om antalet tillåtna IP-adressblock finns i Kvoter i Azure Static Web Apps.
Kommentar
Nätverkskonfiguration är endast tillgängligt i Azure Static Web Apps Standard-planen.
Definiera varje IPv4-adressblock i CIDR-notation (Classless Inter-Domain Routing). Mer information om CIDR-notation finns i Klasslös routning mellan domäner. Varje IPv4-adressblock kan ange antingen ett offentligt eller privat adressutrymme. Om du bara vill tillåta åtkomst från en enda IP-adress kan du använda /32
CIDR-blocket.
{
"networking": {
"allowedIpRanges": [
"10.0.0.0/24",
"100.0.0.0/32",
"192.168.100.0/22"
]
}
}
När ett eller flera IP-adressblock har angetts nekas begäranden som kommer från IP-adresser som inte matchar ett värde i allowedIpRanges
åtkomst.
Förutom IP-adressblock kan du även ange tjänsttaggar i matrisen allowedIpRanges
för att begränsa trafiken till vissa Azure-tjänster.
"networking": {
"allowedIpRanges": ["AzureFrontDoor.Backend"]
}
Autentisering
Standardautentiseringsprovidrar kräver inte inställningar i konfigurationsfilen.
Anpassade autentiseringsprovidrar använder
auth
avsnittet i inställningsfilen.
Mer information om hur du begränsar vägar till autentiserade användare finns i Skydda vägar med roller.
Inaktivera cacheminne för autentiserade sökvägar
Om du konfigurerar manuell integrering med Azure Front Door kanske du vill inaktivera cachelagring för dina skyddade vägar. När gränsen i företagsklass är aktiverad är cachelagring redan inaktiverad för dina skyddade vägar.
Om du vill inaktivera Azure Front Door-cachelagring för skyddade vägar lägger du till "Cache-Control": "no-store"
i routningsrubrikdefinitionen.
Till exempel:
{
"route": "/members",
"allowedRoles": ["authenticated, members"],
"headers": {
"Cache-Control": "no-store"
}
}
Vidarebefordra gateway
Avsnittet forwardingGateway
konfigurerar hur en statisk webbapp nås från en vidarebefordrande gateway, till exempel ett content delivery network (CDN) eller Azure Front Door.
Kommentar
Konfiguration av vidarebefordran av gateway är endast tillgängligt i Azure Static Web Apps Standard-planen.
Tillåtna vidarebefordrade värdar
Listan allowedForwardedHosts
anger vilka värdnamn som ska accepteras i sidhuvudet X-Forwarded-Host . Om en matchande domän finns i listan använder X-Forwarded-Host
Static Web Apps värdet när du skapar omdirigerings-URL:er, till exempel efter en lyckad inloggning.
För att Static Web Apps ska fungera korrekt bakom en vidarebefordrande gateway måste begäran från gatewayen innehålla rätt värdnamn i X-Forwarded-Host
rubriken och samma värdnamn måste anges i allowedForwardedHosts
.
"forwardingGateway": {
"allowedForwardedHosts": [
"example.org",
"www.example.org",
"staging.example.org"
]
}
X-Forwarded-Host
Om rubriken inte matchar ett värde i listan lyckas begärandena fortfarande, men huvudet används inte i svaret.
Nödvändiga rubriker
Nödvändiga rubriker är HTTP-huvuden som måste skickas med varje begäran till din webbplats. En användning av nödvändiga rubriker är att neka åtkomst till en webbplats om inte alla nödvändiga rubriker finns i varje begäran.
Följande konfiguration visar till exempel hur du kan lägga till en unik identifierare för Azure Front Door som begränsar åtkomsten till din webbplats från en specifik Azure Front Door-instans. Se självstudien Konfigurera Azure Front Door för fullständig information.
"forwardingGateway": {
"requiredHeaders": {
"X-Azure-FDID" : "692a448c-2b5d-4e4d-9fcc-2bc4a6e2335f"
}
}
- Nyckel/värde-par kan vara valfri uppsättning godtyckliga strängar
- Nycklar är skiftlägesokänsliga
- Värden är skiftlägeskänsliga
Avslutande snedstreck
Ett avslutande snedstreck är /
i slutet av en URL. Normalt refererar en avslutande snedstrecks-URL till en katalog på webbservern, medan ett icke-räcke snedstreck anger en fil.
Sökmotorer behandlar de två URL:erna separat, oavsett om det är en fil eller en katalog. När samma innehåll återges på båda dessa URL:er hanterar din webbplats duplicerat innehåll, vilket kan påverka sökmotoroptimeringen (SEO) negativt. När statiska webbappar uttryckligen konfigureras tillämpar de en uppsättning regler för URL-normalisering och omdirigering som hjälper dig att förbättra webbplatsens prestanda och SEO-prestanda.
Följande normaliserings- och omdirigeringsregler gäller för var och en av de tillgängliga konfigurationerna:
Alltid
När du ställer in trailingSlash
på always
omdirigeras alla begäranden som inte innehåller ett avslutande snedstreck till en avslutande snedstrecks-URL. Till exempel /contact
omdirigeras till /contact/
.
"trailingSlash": "always"
Begäranden till... | Returnerar... | med statusen ... | och sökväg... |
---|---|---|---|
/om | Filen /about/index.html | 301 |
/om/ |
/om/ | Filen /about/index.html | 200 |
/om/ |
/about/index.html | Filen /about/index.html | 301 |
/om/ |
/privacy.html | Filen /privacy.html | 301 |
/privatliv/ |
Aldrig
När du anger trailingSlash
till never
omdirigeras alla begäranden som slutar med ett avslutande snedstreck till en icke-räcke snedstrecks-URL. Till exempel /contact/
omdirigeras till /contact
.
"trailingSlash": "never"
Begäranden till... | Returnerar... | med statusen ... | och sökväg... |
---|---|---|---|
/om | Filen /about/index.html | 200 |
/om |
/om/ | Filen /about/index.html | 301 |
/om |
/about/index.html | Filen /about/index.html | 301 |
/om |
/privacy.html | Filen /privacy.html | 301 |
/privatliv |
Automatiskt
När du anger trailingSlash
omdirigeras auto
alla begäranden till mappar till en URL med ett avslutande snedstreck. Alla begäranden till filer omdirigeras till en icke-räcke snedstrecks-URL.
"trailingSlash": "auto"
Begäranden till... | Returnerar... | med statusen ... | och sökväg... |
---|---|---|---|
/om | Filen /about/index.html | 301 |
/om/ |
/om/ | Filen /about/index.html | 200 |
/om/ |
/about/index.html | Filen /about/index.html | 301 |
/om/ |
/privacy.html | Filen /privacy.html | 301 |
/privatliv |
För optimala webbplatsprestanda konfigurerar du en avslutande snedstrecksstrategi med hjälp av något av lägena always
, never
eller auto
.
När konfigurationen trailingSlash
utelämnas tillämpar Static Web Apps som standard följande regler:
Begäranden till... | Returnerar... | med statusen ... | och sökväg... |
---|---|---|---|
/om | Filen /about/index.html | 200 |
/om |
/om/ | Filen /about/index.html | 200 |
/om/ |
/about/index.html | Filen /about/index.html | 200 |
/about/index.html |
/privacy.html | Filen /privacy.html | 200 |
/privacy.html |
Exempelkonfigurationsfil
{
"trailingSlash": "auto",
"routes": [
{
"route": "/profile*",
"allowedRoles": ["authenticated"]
},
{
"route": "/admin/index.html",
"allowedRoles": ["administrator"]
},
{
"route": "/images/*",
"headers": {
"cache-control": "must-revalidate, max-age=15770000"
}
},
{
"route": "/api/*",
"methods": ["GET"],
"allowedRoles": ["registeredusers"]
},
{
"route": "/api/*",
"methods": ["PUT", "POST", "PATCH", "DELETE"],
"allowedRoles": ["administrator"]
},
{
"route": "/api/*",
"allowedRoles": ["authenticated"]
},
{
"route": "/customers/contoso*",
"allowedRoles": ["administrator", "customers_contoso"]
},
{
"route": "/login",
"rewrite": "/.auth/login/github"
},
{
"route": "/.auth/login/x",
"statusCode": 404
},
{
"route": "/logout",
"redirect": "/.auth/logout"
},
{
"route": "/calendar*",
"rewrite": "/calendar.html"
},
{
"route": "/specials",
"redirect": "/deals",
"statusCode": 301
}
],
"navigationFallback": {
"rewrite": "index.html",
"exclude": ["/images/*.{png,jpg,gif}", "/css/*"]
},
"responseOverrides": {
"400": {
"rewrite": "/invalid-invitation-error.html"
},
"401": {
"redirect": "/login",
"statusCode": 302
},
"403": {
"rewrite": "/custom-forbidden-page.html"
},
"404": {
"rewrite": "/404.html"
}
},
"globalHeaders": {
"content-security-policy": "default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'"
},
"mimeTypes": {
".json": "text/json"
}
}
Granska följande scenarier baserat på ovanstående konfiguration.
Begäranden till... | resulterar i... |
---|---|
/profil | Autentiserade användare hanteras i filen /profile/index.html . Oautentiserade användare omdirigeras till /login av regeln för 401 åsidosättning av svar. |
/admin, /admin/, eller /admin/index.html | Autentiserade användare i administratörsrollen hanteras i filen /admin/index.html. Autentiserade användare som inte har administratörsrollen får fel 403 1. Oautentiserade användare omdirigeras till /login |
/images/logo.png | Hanterar avbildningen med en anpassad cacheregel där maxåldern är drygt 182 dagar (15 770 000 sekunder). |
/api/admin | GET begäranden från autentiserade användare i rollen registeredusers skickas till API:et. Autentiserade användare som inte har rollen registeredusers och oautentiserade användare får ett 401 fel.POST , PUT , PATCH och DELETE begäranden från autentiserade användare i administratörsrollen skickas till API:et. Autentiserade användare som inte har administratörsrollen och oautentiserade användare får ett 401 fel. |
/customers/contoso | Autentiserade användare som tillhör administratörs- eller customers_contoso-rollerna hanteras i filen /customers/contoso/index.html. Autentiserade användare som inte är i administratörs- eller customers_contoso-roller får fel 403 1. Oautentiserade användare omdirigeras till /login. |
/logga in | Oautentiserade användare uppmanas att autentisera med GitHub. |
_/.auth/login/x | Eftersom routningsregeln inaktiverar X-auktorisering returneras ett 404 fel. Det här felet återgår sedan till att betjäna /index.html med en 200 statuskod. |
/Utloggning | Användare loggas ut från alla autentiseringsprovider. |
/calendar/2021/01 | Webbläsaren hanteras av filen /calendar.html . |
/Specialerbjudanden | Webbläsaren omdirigeras permanent till /deals. |
/data.json | Filen som hanteras med text/json MIME-typen. |
/about, eller en mapp som matchar routningsmönster på klientsidan | Filen /index.html hanteras med en 200 statuskod. |
En obefintlig fil i mappen /images/ | Ett 404 fel. |
1 Du kan ange en anpassad felsida med hjälp av en regel för åsidosättning av svar.
Begränsningar
Följande begränsningar finns för staticwebapp.config.json-filen.
- Maximal filstorlek är 20 kB
- Maximalt 50 distinkta roller
I artikeln Kvoter finns allmänna begränsningar och begränsningar.