我有一个用Angular编写的单页Web应用程序。
当我用ng serve
在本地机器上运行它时,它工作正常。
在AWS S3中将其部署到存储桶时,除主页之外的所有页面都会返回404错误。换句话说,尝试直接加载任何路由时会发生404错误。
例如,/
返回200 OK
,但/terms
,/register?lang=en
,/store
- 所有这些实际上加载相同的单页应用程序 - 返回404 Not Found
。
尽管错误代码为404,但仍然可以正确返回HTML,并且大多数用户都能正确查看所有页面。
但是,当HTTP状态代码为404而不是200时,某些测试工具和某些移动浏览器似乎不起作用。
响应标头包括:
x-amz-error-code →NoSuchKey
x-amz-error-message →The specified key does not exist.
x-amz-error-detail-Key →register
什么可能是错误配置导致此错误?应用程序中的某些内容或AWS中的某些内容?
我在类似的上下文中遇到了同样的问题,并且能够通过创建index.html文件的副本来解决它,将其命名为404.html