正在提供的 Google App Engine 旧版本静态文件

efb*_*own 5 google-app-engine caching google-cloud-platform

我有一个正在部署到谷歌应用引擎的烧瓶应用程序。

我一直在对该应用程序中的 js 和 css 脚本进行更改,并将更新后的存储库部署到 gae。但是,当我*.appspot.com部署后重新加载url时,我浏览器中加载的 js 和 css 文件不是最新版本。

我不确定如何解决这个问题。我不知道这是浏览器中的缓存问题、app.yaml文件问题还是其他问题。

当我在应用程序引擎中查看已部署的文件时,css 和 js 是应该在浏览器中加载但没有加载的当前版本。

在此处输入图片说明

这是我的app.yaml

runtime: python27
api_version: 1
threadsafe: true

libraries:
- name: ssl
  version: 2.7.11

handlers:
- url: /.*
  script: app.app
Run Code Online (Sandbox Code Playgroud)

我对 gae 相当陌生。如果有人有任何建议,那就太好了。

谢谢!

UDPATE:

我已经根据@GAEfan 的建议和链接到的页面 @Dave W. Smith 添加到我的 app.yaml 文件中,现在它看起来如下:

runtime: python27
api_version: 1
threadsafe: true

libraries:
- name: ssl
  version: 2.7.11

handlers:
- url: /.*
  script: app.app
- url: /static
  static_dir: static
  expiration: '10s'
Run Code Online (Sandbox Code Playgroud)

然而问题依然存在。我现在预计这可能与 @Dave W. Smith 的其他建议有关,即“旧实例服务于请求直到它们消失”。

这是 GCP 平台的另一个屏幕截图,显示我的应用程序运行了多个实例,每个新的部署命令都有一个实例:

在谷歌应用引擎上运行的我的应用程序的多个版本/实例

最新版本是默认版本,屏幕截图显示 100% 的流量分配在该版本上。每次部署时我都应该删除旧版本的应用程序吗?如果是这样,这可以用gcloudcli来完成吗?有没有办法可以保留这些旧版本并确保静态文件肯定是从最新版本提供的?

再次感谢。

Dav*_*ith 1

如果这是您的app.yaml,您可能会认为您有静态文件,但它们是由应用程序提供的。为了使该静态真正静态,您需要在我们的app.yaml. 请参阅https://cloud.google.com/appengine/docs/standard/python/getting-started/serving-static-files

除非您升级命令行的版本,否则您可能会看到的是旧实例正在服务请求,直到它们消失。