我不是开发人员,最近分配了一项任务,试图在谷歌网络托管上放置一个简单的静态网站。我被困在app.yaml部分。该网站在服务器上工作正常,我无法让它在GAE上工作。
handlers:
- url: /stylesheets
static_dir: css
- url: /img
static_dir: img
- url: /js
static_dir: js
- url: /(.+\.php)$
script: \1
- url: .*
script: index.php
folder
\css
\img
\js
about.php
footer.php
header.php
home.php
index.php
links.php
menu.php
如果我在app.yaml中保留静态目录行,则该站点将无法启动。如果我只留下脚本:index.php页面加载但只有主页工作,页眉和页脚或CSS不起作用。
我已多次阅读google文档,并在我的计算机上运行hello world无法让这个简单的网站工作。
答案 0 :(得分:1)
欢迎来到SO。
注意缩进,yaml对此很敏感 - 结果可能有不正确的配置(例如static_dir: css
相对于url: /stylesheets
没有正确缩进,这可能就是为什么你的CSS是不工作)。
我认为问题中代码部分的下半部分实际上是你的dir结构的一个例子,而不是app.yaml.file本身的一部分(这将是不正确的yaml语法)。
我没有在您的目录结构中看到favicon.ico文件,app.yaml文件中的相应部分目前无用(或者,如果该文件位于其他位置,则需要更正该部分)。
您没有处理其他.php
个文件的处理程序,它们是通过.*
处理程序处理的,该处理程序是index.php(不确定这是否是您的意图)。
您可能需要查看此文档,其中包含许多示例:https://cloud.google.com/appengine/docs/php/config/appconfig
更新
假设您要为所有.php
个文件添加脚本处理程序,其中一个appconfig doc示例显示:
# Serve php scripts.
- url: /(.+\.php)$
script: \1
您需要将其置于catch-all .*
处理程序之上(使用第一个匹配处理程序,订购事项)。