我有一个网络应用程序(使用带有webpack的Angular 2),除了我使用的是html5样式路由(斜杠而不是哈希)之外,不需要超过静态文件托管。我想在AWS S3 Bucket中托管它。如果用户转到我的应用程序的根目录,那么S3 Bucket会为index.html提供服务,一切都很好。如果用户单击某个使用路由器将其带到myapp.com/routename的按钮,那么它仍然可以正常工作(因为技术上没有页面重新加载)。但是如果用户的入口点是myapp.com/routename,那么浏览器将对该URL发出get请求,而S3将不知道index.html应该响应它。我尝试过使用S3路由配置...但路由配置似乎只能进行实际更改urlbar中url的重定向。例如,如果我说myapp.com/routename重定向到myapp.com,它不仅仅是在该URL上提供index.html,它实际上是在更改浏览器中的url,这会将用户发送回“/”路由。 有没有办法配置和S3桶进行常规路由而不是重定向?
答案 0 :(得分:1)
理论上,您可以将index.html复制到类似于404.html的内容,并在"错误文档"中输入此文件名。 S3设置部分。当没有要显示的页面时(错误404),S3将显示该文档。
它应该有效,但这是一个可怕的想法。浏览器仍然会在HTTP标头中收到404 HTTP代码。