【发布时间】:2018-11-13 10:40:21
【问题描述】:
我正在尝试将 SPA 部署到 GAE。我正在按照他们的static website example 中给出的配置示例进行操作。我的项目文件夹结构如下:
D:\Projects\Proj1
|-node_modules
|-src
|-www
|-.babelrc
|-.gitignore
|-app.yaml
|-package.json
|-package-lock.json
而我的app.yaml如下:
runtime: php55
service: frontend
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/\1
upload: www/(.*)
项目输出构建到www 文件夹。 gcloud 用于使用批处理文件中的gcloud app deploy app.yaml --quiet --version %DOC_VERSION% --project %GCP_PROJECT_ID% 命令进行部署。
我期待 gcloud 复制和部署仅位于 www 文件夹下的文件,但它开始复制位于 node_modules 文件夹下的大约 10K 文件(我终止了该过程)。
所以,我更改了app.yaml,现在它看起来像这样:
runtime: php55
service: frontend
api_version: 1
threadsafe: true
skip_files:
- ^node_modules$
- ^src$
- ^assets$
- ^\.
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/\1
upload: www/(.*)
并且按预期工作。
我的理解是static_files 设置被gcloud 工具用于上传相关文件。那么,为什么要从未提及的文件夹中上传文件?提到skip_files 是正确解决此行为的唯一方法吗?
【问题讨论】:
标签: google-app-engine single-page-application gcloud google-cloud-sdk