我在GAE standard
(运行node
)上遇到了一个奇怪的问题,更确切地说是下面的app.yaml
。
runtime: nodejs8
# Environment variables
env_variables:
GOOGLE_CLOUD_PROJECT: '...'
# Static directories and files
handlers:
- url: /static
static_dir: public
没有的handlers
部分,一切都像个魅力:我的应用程序已部署并正常运行。请注意,size
是4.8 MB(版本1-0-43
)。
但是,具有部分handlers
,我的应用无法正常工作:4xx
错误,并且应用size
的大小为324 KB(版本{{ 1}})。
1-0-43
部分的唯一目的是定义一个handlers
来服务静态资产(CSS,JS,图像...)。
有任何线索吗?谢谢。
答案 0 :(得分:1)
当您添加billing information
处理程序定义时,static_dir
子目录的全部内容将不再(默认)与您的应用程序代码一起上传(很可能解释了应用程序大小的差异)。而是将其上传到其他位置,以由GAE下文直接提供,请参见How to serve static files in AppEngine Standard and nodejs
听起来您的应用可能还需要其中一些文件。在这种情况下,最简单的解决方案是在静态定义中添加public
标志,从而使该目录在静态内容位置以及与您的应用程序代码一起上传,请参见GAE: file_get_contents() and static files。
为加快部署速度,还可以尝试将静态内容分为2:应用程序代码不需要的一部分,没有application_readable
部署的部分(因此也没有随应用程序代码一起上传,部署得更快)和标志。如果不太麻烦。
答案 1 :(得分:0)
您能否尝试将static_dir从“ public”更改为“ static”。因为url和static_dir通常位于同一位置。请尝试,让我知道。干杯!
# Static directories and files
handlers:
- url: /static
static_dir: static