angular - 为 React/Angular SPA 将服务器请求重定向到 /index.html
问题描述
假设我在 www.mywebsite.com/index.html 上托管了一个 React 或 Angular 应用程序,Apache 为 Web 应用程序文件提供服务。在应用程序中,我定义了许多路由,例如 /aboutus 或 /faq。但众所周知,实际上并不存在 /aboutus.html 或 /faq.html 文件。这些路由内置在 Web 应用程序的路由器中。
所以我想知道如果有人尝试直接访问 www.mywebsite.com/aboutus 而不首先在 www.mywebsite.com/index.html 加载网络应用程序会发生什么。我在网上读到,由于您只有一个实际文件,因此您必须为这种情况做些什么,将所有 http 请求重定向到 /index.html。如果您使用的是 Apache,则必须将其配置为重定向所有内容。
我想知道的是 React/Angular 路由器如何知道重定向后要加载哪个路由。例如,如果您访问 www.mywebsite.com/aboutus,它会重定向到 www.mywebsite.com/index.html,根据我在网上阅读的内容,React/Angular 应用程序将能够加载重定向后应用内的 /aboutus 路由。
我会想象 /aboutus 会在重定向中丢失。如果您的服务器重定向到 www.website.com/index.html,那么您现在位于不同的 URL 并且丢失了 /aboutus。Web 应用程序被加载,但没有原始目标 URL,它不知道去哪里。这怎么行?
解决方案
服务器不应使用 30X 代码响应将 /aboutus 重定向到 /index.html。相反,它应该响应 200 index.html。在这种情况下,浏览器将加载 www.......
推荐阅读
- python - 如何使用包含节点和边的 python dict 构建 G Networkx?
- node.js - MongoDB find() 从集合中只检索一个属性
- java - 如何对类对象的 ArrayList 的一部分进行排序?
- opencv - 通过位置识别对象 open cv
- angular - 具有在多个模块中使用的通用基类的 Angular 解析器
- python - Python将列表的字典转换为集合的字典?
- powershell - 禁用启动程序
- sql-server - 执行报表时 SSRS 日期参数格式发生变化
- azure - Azure Cloud Shell 中的 Ansible 2.7
- ruby-on-rails - 在 Rails 中按下按钮后,如何使用排序的电影列表更新视图?