【问题标题】:Subfolders in gcloud app engine?gcloud应用引擎中的子文件夹?
【发布时间】:2018-05-03 02:47:52
【问题描述】:

基本上我想在我的网站上使用我的应用引擎 PHP 项目。当我将一个文件放在我的主文件夹中但我想在我的网站上使用子目录时,它可以工作。例如,如果我想要一个论坛,我会创建 url https://example.com/forums/whatever.php。相反,我在主文件夹中创建子目录,当我访问上面列出的目录时,它只会给我一个 404 not found (nginx) 错误。

这是我的 app.yaml 文件:

runtime: php55
api_version: 1

handlers:
- url: /index
  static_dir: index

- url: /static
  static_dir: static

- url: /index/.*
  script: home.php

【问题讨论】:

    标签: php google-app-engine gcloud


    【解决方案1】:

    出现 404 的原因是您没有与 /forums/whatever.php 路径匹配的模式的 app.yaml 处理程序。您需要添加一个。

    我建议将您现在拥有的 home.php 脚本更改为覆盖来自 app.yaml Example 的任何 php 脚本路径的通用模式:

    # Serve php scripts.
    - url: /(.+\.php)$
      script: \1
    

    如果您还想为空路径设置默认处理程序,则需要单独添加:

    - url: /
      script: index.php
    

    【讨论】:

    • 由于我无法正确格式化评论,所以这里有一个 pastebin。顶部是目录,底部是 app.yaml 代码。访问我的网站时,我仍然收到 404 错误。 pastebin.com/fB8M3uhT
    • 遇到 404 错误时,您遵循的是哪条路径?虽然 Dan 的回答很好,但我可以在您的 app.yaml 文件中看到,如果您点击 / 路径,您将收到 404 错误。如果您正在走这条路,则需要添加如下内容:- url: / script: index.php
    • 这是现在的主要问题:hastebin.com/dopiceyapa.md。基本上,我去网站,我的网站看起来非常好。这些文件不会上传到 App Engine。相反,它给了我一个错误,说文件被跳过了。被跳过的文件位于论坛文件夹中。在该文件夹内还有其他文件夹,其中包含 css、js、html 和 php。有什么方法可以让我为所有这些文件提供服务,这样文件就不会被跳过?我需要它们都在同一个文件夹中。我需要 php、html、css 和 js 在同一个文件夹中工作。
    • 为了清楚起见,您能否将其作为一个单独的问题提出?包括您的目录结构和(其中一些)那些确切跳过的消息。并通过“我需要它们都在同一个文件夹中”来描述您的意思:您期望什么以及您看到什么。也许参考这个问题的上下文。
    • 我同意@DanCornilescu ,接受他的回答应该很好,因为它解决了原始问题,您可以打开一个新问题,新问题,因为它可以更好地处理在那里。
    猜你喜欢
    • 2015-01-02
    • 2014-11-20
    • 2020-10-21
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多