Angular 5应用程序部署-组件URL路由在S3中不工作

Angular 5应用程序部署-组件URL路由在S3中不工作,angular,Angular,我使用ng build--prod构建了angular应用程序,并将dist文件夹的内容复制到S3存储桶中。如果我将浏览器指向http://abc.xyz.com。如果在应用程序内导航,应用程序内的链接也会起作用。例:http://abc.xyz.com/information 但是,如果我将URL复制到组件Ex:http://abc.xyz.com/information然后在地址栏中输入,我得到一个404错误。为什么路由不工作,使用这种方式,我如何修复它?我不确定Amazon使用什么web服

我使用
ng build--prod
构建了angular应用程序,并将
dist
文件夹的内容复制到S3存储桶中。如果我将浏览器指向
http://abc.xyz.com
。如果在应用程序内导航,应用程序内的链接也会起作用。例:
http://abc.xyz.com/information


但是,如果我将URL复制到组件Ex:
http://abc.xyz.com/information
然后在地址栏中输入,我得到一个404错误。为什么路由不工作,使用这种方式,我如何修复它?我不确定Amazon使用什么web服务器来服务angular应用程序。

嘿,看一看,这解释了行为并解决了问题。angular应用程序处理webapp中定义的路由。如果您尝试在文件系统中导航到该路径,则不会有文件,服务器也不知道该查找何处。

好的,谢谢。我试图导航到一个路径,该路径是Angular router中定义的现有组件和路由。但是,是的,在prod模式下,“dist”文件夹中没有这样的文件夹。是否有一种方法可以转到index.html,但以某种方式返回到组件?我将通过电子邮件在angular应用程序中共享链接,并希望用户访问该链接。是的,apache、nginx、iis和firebase的链接中对此进行了解释。ng serve应该自动完成这项工作。文档中说,将404路由到index.html。但它如何知道请求了哪个组件路径,以及如何从index.html重定向到组件路径?文件中没有提到这一点。我想信息是在请求中给出的。。。html知道该做什么,因为这是你的angular应用程序,它知道路线。我从未使用过S3,一开始也没有在你的问题中看到它,但是有很多信息和解决方案。你必须使用cloudfront和S3来直接访问子URL/路由。请按照本文的规定进行操作。