gcloud不会跳过根级别的文件



我正在尝试将SPA部署到GAE。我正在遵循他们静态网站示例中给出的配置示例。我的项目文件夹结构如下:

D:ProjectsProj1
|-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是正确处理这种行为的唯一方法吗?

app.yaml文件中的static_files设置仅将目录指定为静态文件的位置,以便平台在运行时根据需要定位它们。

要指定在部署期间应该或不应该上载哪些目录和文件,在app.yaml中定义skip_files是一个选项。另一种选择是在项目的根目录(app.yaml所在的位置(创建一个.gcloudignore文件,在该文件中指定应而不是上传到谷歌云平台的文件。它遵循与.gitignore相同的语法。你可以在Github的示例代码中找到一个例子。请注意,您可以使用skip_files.gcloudignore来避免冲突。

相关内容

  • 没有找到相关文章

最新更新