【问题标题】:AWS API Gateway + Lambda: favicon issueAWS API Gateway + Lambda:网站图标问题
【发布时间】:2020-10-02 20:40:08
【问题描述】:

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

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

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

网站图标有什么问题吗?

【问题讨论】:

  • 您是否检查了浏览器实际加载的网站图标的 URL?例如,如果您的 favicon 声明由于某些原因是错误的,您的浏览器可以选择 /favicon.ico。您的网站图标如何“无效”?它是一个空文件吗?如果不是,它包含什么?

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


【解决方案1】:

以下解决方案对我有用。

与其使用 API Gateway 服务 favicon.ico,不如将其上传到 S3 并使其成为公共对象。从 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" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 2018-09-26
    • 2021-07-23
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    相关资源
    最近更新 更多