Я запускаю сборку приложения create-реагировать на веб-приложение Azure (узел LTS). Приложение использует React Routes и отлично работает на экране указателя и до тех пор, пока вы перемещаетесь по маршрутным ссылкам через приложение. Однако, если вы обновите sh страницу или перейдете непосредственно к маршруту, отличному от root, вы получите 404. Мне кажется, что моя перезапись web.config (которую я пробовал во многих вариантах) не честь. Я уверен, что я просто упускаю что-то очевидное. Есть предложения?
index. js file
var express = require('express');
var server = express();
var options = {
index: 'index.html'
};
server.use('/', express.static('/home/site/wwwroot', options));
server.listen(process.env.PORT);
web.config (редактировать с обновленной версией)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<webSocket enabled="false" />
<handlers>
<add name="iisnode" path="index.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<rule name="React Routes">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="True"/>
<add input="{REQUEST_URI}" pattern="/api" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="bin"/>
</hiddenSegments>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
Структура файла (/ site / wwwroot/)
- index. html
- web.config
- static / (css, js)