gcloud 不会跳过根级文件
gcloud does not skip root level files
我正在尝试将 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/
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/
upload: www/(.*)
并按预期工作。
我的理解是static_files
设置被gcloud
工具用来上传相关文件。那么,为什么要从未提及的文件夹上传文件?提到 skip_files
是正确解决此行为的唯一方法吗?
您的 app.yaml 文件中的 static_files
设置仅将目录指定为静态文件的位置,以便平台在运行时需要时定位它们。
要指定在部署期间应该或不应该上传哪些目录和文件,在 app.yaml 中定义 skip_files
是一种选择。另一种选择是在项目的根目录(app.yaml 所在的位置)创建一个 .gcloudignore
文件,您可以在其中指定应该 不 上传到的文件Google 云平台。它遵循与 .gitignore
相同的语法。您将在 Github 示例代码 here 中找到它的示例。请注意,您可以使用 skip_files
或 .gcloudignore
来避免冲突。
我正在尝试将 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/
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/
upload: www/(.*)
并按预期工作。
我的理解是static_files
设置被gcloud
工具用来上传相关文件。那么,为什么要从未提及的文件夹上传文件?提到 skip_files
是正确解决此行为的唯一方法吗?
您的 app.yaml 文件中的 static_files
设置仅将目录指定为静态文件的位置,以便平台在运行时需要时定位它们。
要指定在部署期间应该或不应该上传哪些目录和文件,在 app.yaml 中定义 skip_files
是一种选择。另一种选择是在项目的根目录(app.yaml 所在的位置)创建一个 .gcloudignore
文件,您可以在其中指定应该 不 上传到的文件Google 云平台。它遵循与 .gitignore
相同的语法。您将在 Github 示例代码 here 中找到它的示例。请注意,您可以使用 skip_files
或 .gcloudignore
来避免冲突。