0

我目前将路径开头的任何请求路由/app到单个静态文件,该文件使用 Javascript 进行路由。

现在,我想支持 Google 的 ajax 抓取协议,这意味着我必须在任何以 . 开头/app和结尾的url 返回 HTML 快照?_escaped_fragment=

我有这两个处理程序:

- url: /app\?_escaped_fragment=
  script: main.app

- url: /app(/.*)?
  static_files: static/pages/app.html
  upload: static/pages/app\.html

但是请求/app?_escaped_fragment=仍然被路由到静态页面。有没有办法匹配查询参数?

我知道我可以路由/app(/.*)?到返回静态页面或基于查询参数存在的快照的脚本,但是提供静态文件要便宜得多,所以我只想请求带有查询参数的请求应用服务器。

4

2 回答 2

0

这不是您在 app.yaml 中要做的事情。这些请求仍应路由到您的处理程序,在那里他们可以检查请求参数并根据需要返回 JSON 或 HTML。

于 2014-11-27T15:44:13.863 回答
0

虽然很好,但如果您阅读规范,处理程序部分仅用于路径上的 REGEXP 匹配,而不是查询参数。如果您使用 RESTful 原则设计应用程序,则可以轻松地将查询参数访问转换为基于 URI 的访问。只需基于/app/escaped_fragment/.*处理程序函数和在处理程序函数中路由,检查路径的其余部分以查找正在请求的类型为 escaped_fragment 的特定资源。

于 2014-11-27T16:38:18.447 回答