在Azure网站上的404错误时重定向到索引页面
在Azure网站上的404错误时重定向到索引页面
我正在尝试在Azure网站上部署我的React应用程序,并且已经成功完成了。由于它是一个单页应用程序,在重新加载时无法正常工作。在重新加载时,会显示404错误状态码。
我希望在发生404错误时将页面重定向到/(index.html或根目录)。我可以通过编辑web.config文件来实现这一点。但是我找不到所需的具体重定向策略。例如:
我需要将:
http://letsmeetupp.azurewebsites.net/event/eventId=dsdsd-dsdsd-1475750226814
重定向到:
http://letsmeetupp.azurewebsites.net/#!/event/eventId=dsdsd-dsdsd-1475750226814
我希望使用前缀#!/进行重定向,以便我可以在我的React应用程序中找到该路径,并在HTML 5中推送状态。
我的当前web.config文件如下。这使我重定向到/,但我需要带有前缀的完整路径,这将帮助我解析哈希并推送状态(HTML 5 HISTORY API)。
jambor评论后的编辑:
嗨@Jambor-MSFT。我在Azure网站上部署了一个ReactJS(单页应用程序)。问题是,我的SPA是一个MVC应用程序。我在那里定义了我的路由。从技术上讲,我在我的SPA应用程序中使用react-router来定义路由。所以对于你的问题它在本地工作正常吗?是的,确实如此。我理解IIS无法理解这些路由。我的意思是,当http://letsmeetupp.azurewebsites.net在浏览器中访问时,它会渲染index.html。而所有的路由都由包含在index.html中的React文件内部管理。我想要的是在除了/之外的不同路由上,它应该重定向到带有前缀的index.html,如此:http://letsmeetupp.azurewebsites.net/#!/event/eventId=dsdsd。之后,我可以通过删除前缀并渲染正确的路径来内部处理路由。