2012-07-27 159 views
1

我将所有静态文件放在根目录下名为html的文件夹中。我碰到下面的错误,而试图访问HTML文件夹中的index.html:在Google App Engine上定义url规则

- 
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规则:

- 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)) 

难道我做错了什么吗?

+0

在您的文件夹结构图像中,我看到一个图像目录。 html是父目录的名称? – 2012-07-27 05:33:32

+0

@DanHolevoet我已添加更多信息的问题。 – ssk 2012-07-27 05:47:54

回答

3

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

0

很有可能您有另一个匹配“/images/logo_footer.jpg”的网址,而且这个网址出错了。

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

+1

\ 1来自正则表达式分组。在这种情况下,它指的是URL中的整个文件名。 – 2012-07-27 05:31:29