【问题标题】:PHP App Engine Flex serving SPA and API提供 SPA 和 API 的 PHP App Engine Flex
【发布时间】:2018-06-25 06:59:32
【问题描述】:

我的目标是在同一个站点上提供 SPA 和 PHP api。我希望能够在 mywebsite.com 上浏览网站,并在 mywebsite.com/api/ 上请求 api 调用。

我的目录结构是:

public
|
+-- index.html 
+-- api
     |
     index.php

我的 app.yaml:

runtime: php
env: flex

runtime_config:
  document_root: public

导航到 mywebsite.com 会出现 404,因为 public/index.php 不存在。

所以我尝试了这个 app.yaml:

runtime: php
env: flex

runtime_config:
  document_root: public
  front_controller_file: index.html

而且我可以正常访问mywebsite.com,因为index.html是默认文件,但是api/index.php仍然是404。

在 App Engine php flex 上可以实现这样的事情吗?我已经阅读了文档-https://cloud.google.com/appengine/docs/flexible/php/configuring-your-app-with-app-yaml

谢谢!

【问题讨论】:

    标签: google-app-engine app-engine-flexible google-app-engine-php


    【解决方案1】:

    删除runtime_config 中的front_controller_file。 创建一个名为nginx-app.conf 的文件,内容如下:

    location / {
      try_files $uri $uri/ /index.html?$args;
    }
    
    location /api {
      try_files $uri /api/index.php$is_args$args;
    }
    

    然后重新部署。两个 URL 都可以。

    【讨论】:

    • 谢谢。我注意到的一件事是 mywebsite.com/api 似乎有一个无限循环。但是,mywesite.com/api/ 工作正常。
    • 我从上面的示例中删除了尾部斜杠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2019-05-19
    • 1970-01-01
    • 2017-06-08
    • 2015-05-28
    相关资源
    最近更新 更多