asp.net-core - AWS API网关+Lambda : favicon issue

标签 asp.net-core aws-lambda aws-api-gateway favicon

我有一个在 AWS Lambda (ASP.NET Core 3.1) 上运行的微服务,并使用具有自定义域的 API Gateway 进行发布。

在本地运行,一切正常,网站正常,图像已加载,图标也已加载。

部署到 Lambda+API,站点正常工作,加载图像(PNG、JPG)、加载脚本,但未加载 favicon.ico。返回无效图像。对于 PNG、JPG、CSS、JS 或任何其他静态内容没有特殊配置,它开箱即用。

网站图标有什么陷阱吗?

最佳答案

以下解决方案对我有用。

不要使用 API Gateway 来提供 favicon.ico,而是将其上传到 S3 并使其成为公共(public)对象。从 S3 控制台获取此对象的 HTTPS url。然后在您的 Lambda 函数中,重定向到它。

在我的例子中,这是一个 AWS Chalice (Python) 应用程序,因此路由逻辑的实现如下:

@app.route('/favicon.ico')
def favicon(): 
  return Response(body='', headers={'Location': 'https://s3.amazonaws.com/YOUR_BUCKET_NAME/favicon.ico'}, status_code=301)

虽然不是绝对必要,但您也可以在 HTML 中包含标记来指示网站图标的位置,如下所示:

<link rel="icon" type="image/x-icon" href="/favicon.ico" />

关于asp.net-core - AWS API网关+Lambda : favicon issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62557216/

相关文章:

javascript - 使用生成的 JS SDK 的 Amazon API Gateway IAM 身份验证示例

amazon-web-services - 如何将模板添加到cloudformation中APIgateway的body映射模板(在integrationResponse中)

amazon-web-services - AWS API Gateway - 将 Cognito 用户组获取到自定义授权方

c# - MsalService异常: AADSTS90014: The required field 'aud' is missing

c# - 在 Azure AD B2C 中请求 token 时缺少范围 "scp"

c# - 当我的应用程序使用不同的 appsettings 文件时,为什么 AspNetCore Identity 脚手架不会加载其关联的 CSS 和 JS 文件?

jwt - 使用 AWS API Gateway 时是否可以从自定义 Lambda 授权方传回 JWT 负载?

angular - 401 错误代码未刷新刷新 token

javascript - 如何在aws lambda函数中使用setInterval

aws-lambda - 如何将 Step 函数的 Arn 传递给 CloudFormation 堆栈中的另一个函数?