我正在使用AWS Codestar通过使用无服务器nodejs模板的React应用程序进行部署。这是codestar在成功完成所有阶段https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod
之后给出的url。此网址正确显示了我应用中的所有组件。在我的应用程序导航栏中,我有类似a
,b
,c
之类的项目。在其中单击每个按钮将重定向到新组件。(即https://xxxxx.execute-api.us-east-1.amazonaws.com/a
,https://xxxxx.execute-api.us-east-1.amazonaws.com/b
等。但是,当我刷新页面时,该页面的URL是这样的https://xxxxx.execute-api.us-east-1.amazonaws.com/b
{"message":"Forbidden"}
之类的错误,并且在我的控制台中显示为favicon.ico:1 GET https://xxxx.execute-api.us-east-1.amazonaws.com/favicon.ico 403
Chrome浏览器似乎基于https
链接来获取收藏夹图标,该操作失败了,因为该位置没有这样的favicon
。我试图在index.html中删除favicon.ico link
,但即使如此,chrome仍使用相同的URL来获取图标,该图标最终会失败。为了达到这个目的,我遵循了SO中的大量建议,但是没有运气。有什么办法说api-gateway
以排除这些favicon get requests
并显示我的应用,而不是显示message forbidden
。
而且我非常确定我已经为agi-gateway和lambda启用了日志,在这些日志中我没有发现任何被禁止的错误(即403),这很奇怪,因为我可以在控制台中看到那些403错误。
谢谢 我们非常感谢您的帮助。
答案 0 :(得分:2)
API网关提供的https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod
URL是您网站的基本URL,因此这些路径必须是/Prod/a
而不是/a
。
一种解决方法是注册您自己的域,然后通过custom domain将其连接到API Gateway。这样一来,您可以将https://example.com
作为基本URL,并且路径可以保留/a
,/b
等。