将 React/Angular SPA 的服务器请求重定向到 /index.html
Redirecting Server Requests to /index.html for React/Angular SPA
假设我有一个 React 或 Angular 应用程序托管在 www.mywebsite.com/index.html,Apache 提供 Web 应用程序文件。在应用程序内部,我有很多路线
定义为 /aboutus 或 /faq。但众所周知,实际上并不存在 /aboutus.html 或 /faq.html 文件。这些路由内置于 Web 应用程序的路由器中。
所以我想知道如果有人试图直接访问 www.mywebsite.com/aboutus 而不首先在 www.mywebsite.com/index.[= 加载网络应用程序会发生什么37=]。我在网上读到,由于您只有一个实际文件,因此您必须为这种情况做的是将所有 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,它不知道去哪里。这怎么行?
and according to what I've read online, the React/Angular application will
then be able to load the /aboutus route within the app after the
redirect.
^^ 千真万确——你所看到的完全不是谎言。当路由器代码启动时,它会检查当前 url 并查看是否有任何匹配项,如果找到匹配项,它会呈现该路由 - 否则它将使用后备路由(可能是 home 或类似路由)。
服务器不应使用 30X 代码响应将 /aboutus 重定向到 /index.html。相反,它应该响应 200 index.html。在这种情况下,浏览器将加载 www...../aboutus link(它将获得与 .com/index.html 相同的 index.html 路径,但只是另一个 url) 和 FE famework 脚本将处理其余的
假设我有一个 React 或 Angular 应用程序托管在 www.mywebsite.com/index.html,Apache 提供 Web 应用程序文件。在应用程序内部,我有很多路线 定义为 /aboutus 或 /faq。但众所周知,实际上并不存在 /aboutus.html 或 /faq.html 文件。这些路由内置于 Web 应用程序的路由器中。
所以我想知道如果有人试图直接访问 www.mywebsite.com/aboutus 而不首先在 www.mywebsite.com/index.[= 加载网络应用程序会发生什么37=]。我在网上读到,由于您只有一个实际文件,因此您必须为这种情况做的是将所有 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,它不知道去哪里。这怎么行?
and according to what I've read online, the React/Angular application will then be able to load the /aboutus route within the app after the redirect.
^^ 千真万确——你所看到的完全不是谎言。当路由器代码启动时,它会检查当前 url 并查看是否有任何匹配项,如果找到匹配项,它会呈现该路由 - 否则它将使用后备路由(可能是 home 或类似路由)。
服务器不应使用 30X 代码响应将 /aboutus 重定向到 /index.html。相反,它应该响应 200 index.html。在这种情况下,浏览器将加载 www...../aboutus link(它将获得与 .com/index.html 相同的 index.html 路径,但只是另一个 url) 和 FE famework 脚本将处理其余的