如何在Google App Engine中为节点反应项目配置app.yaml文件

时间:2019-01-16 06:19:22

标签: node.js reactjs google-app-engine web-deployment devops

我正在使用react js和nodejs开发应用程序。当我在本地计算机上运行该应用程序时,它可以作为示例正常工作

localhost:3000/AboutUs
localhost:3000

当我刷新上述URL时,它将显示正确的网页。我在Google App Engine中部署了此应用程序,当刷新以下页面时,它表明未找到所请求的URL。有人能让我知道原因吗?

www.mydomain.com/AboutUs

app.yaml代码如下

runtime: nodejs8
handlers:
- url: /api/.*
# secure: always
# redirect_http_response_code: 301
script: auto
- url: /
static_files: build/index.html
upload: build/index.html

1 个答案:

答案 0 :(得分:0)

这是因为您没有定义的处理程序来定向/AboutUs URL。您可以在handlers下添加:

- url: /AboutUs
  script: auto

或在网址列表的末尾添加通配符处理程序,例如:

runtime: nodejs8
handlers:
- url: /api/.*
# secure: always
# redirect_http_response_code: 301
  script: auto
- url: /
  static_files: build/index.html
  upload: build/index.html
- url: /.*
  script: auto

将通配符处理程序/.*保留在最后很重要,因为否则所有URL都将落入该通配符处理程序,并且它将不使用其他URL处理程序。

在网址的scriptstatic_filesupload标记中还缺少两个空格,我不知道这是否是由于复制{{ 1}}内容作为答案,但是无论哪种方式,都是indentation is important在YAML文件中。