代码之家  ›  专栏  ›  技术社区  ›  don

404,同时在本地SDK服务器上工作

  •  0
  • don  · 技术社区  · 7 年前

    我已经在GAE标准环境中部署了几个PHP应用程序,都运行良好。

    现在,我正在部署一个新的应用程序,它位于 gcloud SDK按预期工作(终端命令: dev_appserver.py --log_level=warning app.yaml ).

    问题是,当我将其部署到live GAE服务时( gcloud app deploy app.yaml --project myapp ),我收到一条404错误消息:

    The page could not be found
    
    No web page found for the web address: xxx
    HTTP ERROR 404
    

    应用程序。yaml看起来像这样:

    runtime: php55
    api_version: 1
    threadsafe: true
    
    skip_files:
    - README.md
    - package.json
    
    handlers:
    
    - url: /(.*\.html)
      script: mod_rewrite.php
      secure: always
    
    - url: /(.*\..{2,})
      static_files: \1
      upload: (.*\..{2,})
      secure: always
    
    - url: /.*
      script: mod_rewrite.php
      secure: always
    

    I'va还尝试添加指向特定文件的测试处理程序:

    - url: /(mytest\.html)
      static_files: \1
      upload: mytest.html
      secure: always
    

    通过这种方式,我能够访问url。但就是这样。任何其他url都是404。

    有趣的是 Versions 在当前部署版本中,GAE应用程序的选项卡声明该应用程序是 0 B ,即使没有以前的版本,但它应该在30 Mb左右。在部署时,所有988个文件似乎都已上载,这也是因为我的互联网连接速度较慢,需要一段时间。

    在成功完成教程后,我尝试将整个内容重新部署到一个新项目,但仍然遇到同样的问题。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Dan Cornilescu    7 年前

    您可以使用 application_readable 处理程序选项,以在应用程序代码中包含相应的静态文件。从…起 Handlers element :

    应用程序可读

    可选择的布尔型。默认情况下,在静态文件处理程序中声明的文件 作为静态数据上传,仅向最终用户提供。他们 应用程序无法读取。如果此字段设置为true,则 文件也作为代码数据上传,以便应用程序可以读取 他们这两种上传都会根据您的代码和静态数据收费 存储 resource quotas .

    这样地:

    - url: /(.*\..{2,})
      static_files: \1
      upload: (.*\..{2,})
      application_readable: true
      secure: always
    
        2
  •  1
  •   don    7 年前

    经过几个小时的测试,我终于意识到问题所在。

    在GAE中,当声明某个路径为静态路径时,它将被解释为非代码路径。因此,在具有 require include 并且它们不会显示在部署的代码调试器中。

    因此,我将所有静态文件放在一个子文件夹中( www ),以及非静态文件 required 通过另一个子文件夹下的PHP脚本。