谷歌云文档对我使用的Node.js应用程序的app.yaml文件的可用语法不是很明确。我使用了 GAE Python文档中描述的语法,从中找到了handlers机制。
我已经避开了我的expressjs规则,以提供/public/index.html内容,最终出现了404错误,这意味着GAE没有将我的页面作为静态内容提供:
handlers:
- url: /index.html
static_files: /public/index.html
upload: /public/index.html
我已经避开了我的expressjs规则,以提供/public/index.html内容,最终出现了404错误,这意味着GAE没有将我的页面作为静态内容提供:
$ curl -i "http://my-project/index.html"
HTTP/1.1 404 Not Found
...
您对此有任何线索吗?Node.js适用于制作API、生成动态内容...但我更喜欢使用Google后端甚至Nginx服务器来处理静态内容。
更新
去掉前导斜杠并没有解决问题。我稍微更改了app.yaml配置:
handlers:
- url: /api/.*
secure: always
script: app.js
- url: /.*
secure: always
static_dir: public
我仍然在/index.html
上遇到404未找到错误,并且在调用/api/stuff
时获得正确的200 OK响应。
这是我的项目目录结构:
Project root
|- app.js
|- app.yaml
|- package.json
|- public/
| `-- css/
| `-- style.css
| `-- js/
| `-- main.js
| `-- index.html
static_dir
静态文件处理程序的问题?丹提供的答案是否有效(因为从评论中似乎不太清楚)? - Nicholas