【发布时间】:2020-01-31 02:59:24
【问题描述】:
我们已将 Vue SPA 部署到 Google App Engine,它完全由静态处理程序提供服务。
我们面临的问题是,如果用户在我们的站点部署中处于活动状态,那么他们的旧 Webpack 块清单将变得无效(因为某些块的哈希被覆盖)。如果他们现在尝试路由到新页面并且该页面尝试获取被覆盖的块,我们会收到以下错误:
ChunkLoadError: Loading chunk Conversations failed.
(error: https://example.com/js/Conversations.71762189.js)
理想情况下,我们希望保留 N (2-3?) 应用静态文件的早期版本。
是我们将所有资产推送到Cloud Storage Bucket 的唯一选择吗?如果是这样,我们将如何修剪旧版本?
这是我的app.yaml供参考:
runtime: nodejs10
instance_class: F4
automatic_scaling:
min_instances: 2
max_instances: 10
default_expiration: "30d"
error_handlers:
- file: default_error.html
handlers:
- url: /api/*
secure: always
redirect_http_response_code: 301
script: auto
- url: /js/*
secure: always
redirect_http_response_code: 301
static_dir: dist/js
- url: /css/*
secure: always
redirect_http_response_code: 301
static_dir: dist/css
- url: /img/*
secure: always
redirect_http_response_code: 301
static_dir: dist/img
- url: /(.*\.(json|js|txt))$
secure: always
redirect_http_response_code: 301
static_files: dist/\1
upload: dist/.*\.(json|js|txt)$
expiration: "10m"
- url: /.*
secure: always
redirect_http_response_code: 301
static_files: dist/index.html
upload: dist/index.html
expiration: "2m"
【问题讨论】:
标签: google-app-engine caching webpack google-cloud-platform google-cloud-storage