【问题标题】:GCP App Engine: Random pending requests for static assets (css / images)GCP App Engine:静态资产(css /图像)的随机待处理请求
【发布时间】:2019-11-10 16:32:43
【问题描述】:
我有一个 next.js 应用程序在节点标准环境中的 gcp 应用引擎上运行了几个月。上一次部署是在大约 2 周前完成的,直到本周网站加载都很好。
以下是检测到的异常情况:
- css 文件随机卡在“待处理”请求中
- png 文件随机卡在“待处理”请求中
在同一 Chrome 实例下的不同选项卡中可以观察到上述随机性。
您可以在这里查看:
https://clanhallroyale.com/
令人惊讶的是,这种行为不会在构建时发生
https://seventh-sensor-226609.appspot.com/
这是应用程序的 app.yaml。
# [START runtime]
runtime: nodejs10
handlers:
- url: /.*
script: auto
secure: always
# [END runtime]
似乎没有明确的线索表明可能是什么问题。我该如何解决这个问题?
【问题讨论】:
标签:
node.js
google-cloud-platform
gcloud
next.js
google-appengine-node
【解决方案1】:
我遇到了完全相同的问题。在具有自定义域的 Google App Engine 上运行 next.js 应用程序。
- CSS 和图像文件随机(我猜大概有 5 到 10 次)卡在“待处理”状态
-
.appspot.com 域上似乎没有出现此问题。仅发生在自定义域上。
应用程序是https://tsunotte.com(以防万一你想检查它)。
我所做的可能无法完美解决问题,但似乎至少减少了问题。
我将 GAE 配置文件 (app.yaml) 处理程序更改为以下:
handlers:
- url: /_next/static
static_dir: .next/static
secure: always
- url: /static
static_dir: static
secure: always
- url: /.*
secure: always
script: auto
默认情况下,Next.js 从应用服务器提供/static 和./.next/static 目录下的静态文件。我将静态文件配置为从 GAE/SE 静态服务器提供,以便从 CDN 提供文件,我认为这是在生产环境中运行 Next.js 应用程序的最佳实践,并且似乎减少了我的问题。
查看reference了解更多详情。
我不确定为什么这个问题只发生在自定义域应用程序上,以及这个问题是否直到最近才发生(因为我在 3 天前为应用程序配置了自定义域)。