簡體   English   中英

新文件出錯,找不到404,適用於Python的App Engine

[英]Error with new file, 404 Not Found, App Engine for Python

我有一個在Google App Engine for Python上運行的網站。 我繼承了代碼庫,並試圖將自己拼湊在一起。 我正在嘗試完成在網站上創建新頁面並從工具欄鏈接到該頁面的“簡單”任務。 因此,我在主目錄中創建了一個新文件,名為mypage.html。

這是在index.html文件中用於鏈接的代碼:

 <li {% if mypage_selected %}class='active'{% endif %}>
   <a href='/mypage'>My Page</a>
 </li>

這是我用來處理鏈接的代碼,如在main.py文件中聲明的那樣:

class MyPagePage(BaseHandler):
  def get(self):
    template_values = {
      'mypage_selected': True,
      'session': self.session,
    }
    self.response.out.write(
      template.render(get_path("mypage.html"), template_values))

最后,我在此處添加了對頁面的引用(也在main.py中):

app = webapp2.WSGIApplication([
  ('/', MainPage),
  ...
  ('/mypage/?', MyPagePage),
], debug=True, config=webapp2conf)

我的新文件確實位於mypage.html。 但是,當我運行此鏈接時,將顯示該鏈接,但是單擊該鏈接會將我帶到http://mydomain.net/mypage ,這會出現404 Not Found錯誤。 有什么想法會發生什么嗎?

編輯:這是我的app.yaml的處理程序部分:

handlers:
- url: /
  script: main.app
- url: /index\.html
  script: main.app
- url: /static
  static_dir: static
- url: /api.*
  script: api.app
- url: /blog/.*/edit/?
  script: dj.app
- url: /.*
  script: main.app

另外請注意:我嘗試導航到mypage.html,這也給了我404。 非常難住這里。 任何幫助是極大的贊賞!

注意/mypage/? 在您的處理程序中。 至少必須匹配,但是您的鏈接是指向'/mypage'因此您得到了404。

一些東西。 我強烈建議使用gae-boilerplate之類的樣板應用程序。 這將有助於解決許多Google Appengine的首次問題。 它輕巧,可讓您快速開始制作自己的項目。 我推薦它的原因是因為默認情況下,它通過使用以下命令解決了嚴格的斜杠問題(/ mypage和/ mypage /之間的區別)

from webapp2_extras.routes import RedirectRoute
from web.handlers import handlers
secure_scheme = 'https'

_routes = [
    RedirectRoute('/', handlers.MainPage, name='main', strict_slash=True),
    RedirectRoute('/mypage/', handlers.mypagepage, name='mypage', strict_slash=True),
    ...

在處理程序中,您可以:

class mypagepage(BaseHandler):
    @user_required
    def get(self):
        params = {}
        return self.render_template('mypage.html', **params)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM