处理对 Angular 5 应用程序的 URL 请求有哪些可能性?



我正在开发一个 Angular 5 应用程序,我已经构建了它并将dist/目录的内容放到了 docker 容器上。

当我使用应用程序的导航(利用routerLink)导航应用程序时,找到您要查找的页面没有问题。没有问题的原因是因为 Angular 根据用户交互操作 DOM。

但是,如果用户点击 index.html 以外的页面上的刷新按钮,Web 服务器将发送 404 页面。这是因为Apache(或者我猜任何服务器操作系统)正在寻找一个不存在的页面"文件"。Angular的路由器位于发送到浏览器的JavaScript包中。由于它不在服务器上,因此当服务器收到对非 index.html 路径的请求时,它在 .htaccess 中找不到任何内容,只是返回 404。

此问题的一个解决方案是使用 Angular 应用程序的所有路由更新 .htaccess 文件,以便将所有路由重定向到 index.html。不过这似乎有点混乱。您将如何保留对特定页面的请求并将其提供给 Angular?

所以问题是:有没有办法让 apache 知道 Angular 应用程序中的内部页面并在该页面上加载 Angular 应用程序?还是.htaccess修改是唯一的方法?

.htaccess重写几乎是goto解决方案。 这个页面很好地描述了它。

最新更新