在Google App Engine上定义网址规则

时间:2012-07-27 04:11:10

标签: google-app-engine url static rule-engine

我将所有静态文件放在根目录下名为html的文件夹中。尝试访问html文件夹中的index.html时出现以下错误:

-
INFO     2012-07-27 04:07:44,847 dev_appserver.py:2952] "GET /images/logo_footer.jpg HTTP/1.1" 404 -

这是文件夹结构:

root app directory

html directory

处理程序文件夹中的处理程序代码:

class MainHandler(webapp.RequestHandler):
  def get (self, q):
    if q is None:
      q = '../html/index.html'

    path = os.path.join (os.path.dirname (__file__), q)
    self.response.headers ['Content-Type'] = ContentType.HTML_TEXT
    self.response.out.write (template.render (path, {}))

以下是app.yaml上图片的网址规则:

- url: /.*
  script: notify.app

# image files
- url: /(.*\.(bmp|gif|ico|jpeg|jpg|png))
  static_files: html/images/\1
  upload: html/images/(.*\.(bmp|gif|ico|jpeg|jpg|png))

我在这里做错了吗?

2 个答案:

答案 0 :(得分:3)

您需要将url : /.*部分移至app.yaml中的图像文件部分之后。它们按顺序处理,/.*匹配所有内容,因此永远不会使用第二条- url:行。

答案 1 :(得分:0)

您很可能首先使用另一个与“/images/logo_footer.jpg”匹配的网址,这会产生错误。

另外,不知道static_files路径中的\ 1是什么。