gpt4 book ai didi

reactjs - React路由器+iis?如何启用路由

转载 作者:行者123 更新时间:2023-12-03 13:45:34 26 4
gpt4 key购买 nike

我正在使用react-router并将其放入其中,但我注意到当我从登陆页面开始并浏览所有路线时,它就可以工作了。如果我只是输入路径 url,我会得到 404。

我猜这与服务器不知道如何将其传递给我的客户端路由有关吗?

我找到了this帖子,但我对答案有点困惑,因为有人说更新 web.config 文件,但我没有,因为它只是一个 Reactjs。

编辑

这是我现在要重写的内容

enter image description here

现在,当我尝试导航到非索引页的 URL 时,会出现白页。

当我查看控制台时。我明白了

Uncaught SyntaxError: Unexpected token <

进入 main.js 并提示这个 "<!DOCTYPE html>"看起来我的index.html 几乎被合并到了javascript 文件中。

最佳答案

让 React-Router 与 IIS 配合使用的关键是设置 URL 重写规则。在查看了其他人如何使用 IIS 设置 AngularJS SPA 应用程序后,我提出了以下解决方案。

下载并安装URL Rewrite在您的服务器上(开发和生产)

设置规则以捕获任何不是文件和目录的 URL 路由。或者,您可以否定您想要定期提供服务的任何实际目录。更多信息可以在这里找到Microsoft's Documentation

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReactRouter Routes" stopProcessing="true">
<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="^/(docs)" negate="true" />
</conditions>
<action type="Rewrite" url="index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

在您的 html 基本页面 (index.html) 中,向您的应用添加一个带有 href 属性的标签。

<base href='/path/to/my/app'/>

关于reactjs - React路由器+iis?如何启用路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51755370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com