我的谷歌应用引擎网站只在迁移到python 2.7后显示我的主页面

时间:2014-11-12 23:33:48

标签: python google-app-engine python-2.7

有谁可以给​​我一些关于如何让其他页面显示的指示? 我这是我的main.py

import webapp2
import os
import jinja2

jinja_environment = jinja2.Environment(autoescape=True,
  loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__))))

class MainPage(webapp2.RequestHandler):
    def get(self):
        template = jinja_environment.get_template('index.html')
        self.response.write(template.render())


application = webapp2.WSGIApplication([
                                        ('/',MainPage),
                                        ], debug=True)

这是我的app.yaml

application: ftmyersptcong
version: 1
runtime: python27
api_version: 1
threadsafe: true

libraries:
- name: jinja2
  version:  latest

handlers:  
- url: /styles
  static_dir:  styles

- url: /images
  static_dir:  images

- url: /scripts
  static_dir:  scripts

- url: /.*
  script: main.application

当我点击我的html代码中已经隐藏的其他页面的任何链接时,我一直收到404 Not Found页面。  这就是日志中的内容:

INFO     2014-11-12 18:15:42,434 module.py:652] default: "GET / HTTP/1.1" 500 -
INFO     2014-11-12 18:28:21,151 module.py:652] default: "GET / HTTP/1.1" 200 1274
INFO     2014-11-12 18:28:21,272 module.py:652] default: "GET /styles/main.css HTTP/1.1" 200 1880
INFO     2014-11-12 18:28:27,512 module.py:652] default: "GET /downloads.html HTTP/1.1" 404 154

1 个答案:

答案 0 :(得分:0)

您的app.yaml(图像,脚本,样式)中定义了一些静态目录路由 - 这就是您的css文件正常加载的原因,例如。那么你就得到了所有与那些目录不匹配的东西#34; application"在你的" main.py"文件。

在那里,你目前只定义一条路线 - " /"和MainPage被定义为该路由的处理程序。拨打" /downloads.html"被发送到同一个路由器,但因为它不匹配" /"路线,返回404。

您需要在main.py中定义其他路径和处理程序。例如:

application = webapp2.WSGIApplication([
                                        ('/',MainPage),
                                        ('/downloads.html',DownloadPage)
                                        ], debug=True)

然后,您可以像MainPage一样定义DownloadPage来处理该路由。您也可以在路径定义中进行模式匹配,以传递变量信息,但是对于您的示例,上述情况应该有效。