我有一个带有以下文件和文件夹的React应用程序:
├── static
│ ├── css
│ │ └── someCssFile.css
│ ├── js
│ │ └── someJsFile.js
├── index.html
├── web.config
web.config文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- This part is responsible for URL rewrites -->
<rewrite>
<rules>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="index.html"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
而index.html文件为
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<link rel="manifest" href="/manifest.json">
<link rel="shortcut icon" href="/favicon.ico">
<title>React App</title>
<link href="/static/css/main.8833e8af.css" rel="stylesheet">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="text/javascript" src="/static/js/main.8f22fc15.js"></script>
</body>
</html>
我还安装了URL Rewrite。但是在ISS上部署应用程序时,它不起作用!
您能帮我解决这个问题吗?
答案 0 :(得分:1)
您的操作网址必须是完全限定的网址。例如
<action type="Redirect" url="https://{HTTP_HOST}/index.html"/>
{HTTP_HOST}
被IIS替换为请求中的实际主机名。如果您有多个指向同一站点的域/重定向,则可能需要对您的实际域进行硬编码。