App Engine YAML 文件不是 运行 脚本

App Engine YAML file not running scripts

所有其他静态文件在域中正常运行。

似乎 PHP 文件没有 运行ning;当我不尝试 运行 它作为脚本(并且只是将其作为静态文件上传)时它工作正常;当 jQuery 调用它时返回明文 - 所以它绝对不是文件路径问题。

但是一旦我在 yaml 中将其列为 php 文件并期望 jQuery 在 Firefox 网络监视器中获取 'hello, world!' 它 returns 404 并且有一个控制台无响应。

关于 运行在 App Engine Standard 上使用单独的服务器端 php 脚本,我是否遗漏了什么?

app.yaml

runtime: php55
api_version: 1
threadsafe: true

handlers:
# Serve php scripts another way.
- url: /scripts/elastic.php
  script: scripts/elastic.php

# Handle the main page by serving the index page.
# Note the $ to specify the end of the path, since app.yaml does prefix matching.
- url: /$
  static_files: index.html
  upload: index.html


# Handle folder urls by serving the index.html page inside.
- url: /(.*)/$
  static_files: /index.html
  upload: .*/index.html

# Handle nearly every other file by just serving it.
- url: /(.+)
  static_files: 
  upload: (.*)

elastic.php

<?php
return 'Hello, world!'
?>

script.js(在 jQuery 加载到我的 index.html 后调用)

$(document).ready(function(){
    $.get("./scripts/elastic.php", function( data ) {
      console.log(data);
    });
});

我认为发生的情况是您的最终 handlers 指令告诉部署将应用程序中的所有文件视为可上传和静态。我相信这会导致您对早期脚本的调用被错误处理(可能是 App Engine 错误...)。

如果您将最终处理程序更改为 PHP 脚本或类似下面的内容,那么您应该会很好:

- url: /(.*)
  static_files: 
  upload: (.*)\.html

您还希望让您的 PHP 脚本 echo or print 产生响应而不是 return,这实际上 return 对浏览器没有任何影响用于展示。