[英]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.