Python 2.7で実行されている、複数のページを持つアプリがあります。アプリはローカルでは問題なく動作しますが、デプロイすると、作成したログイン ページにログインした後、メイン ページ (スラッシュの後に何もない) が完全に空白になります。アプリの他のページへのアドレスを入力すると、問題なく表示されます (ログインしている場合)
URL は hoosierhillsfoodbank.blogspot.com です。現在、ユーザーは admin、admin だけです。
関連するコードが大量にあるため、関連性があると思われるもののみを投稿します。HTML ページの先頭は次のとおりです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Volunteer Kiosk | Home</title>
<link href="../static/style.css" rel="stylesheet" type="text/css" />
</head>
ログイン後にホームページをロードするコードは次のとおりです
class LoginPage(BaseHandler):
def get(self):
if self.session.get('user'):
self.redirect('/') #already logged in, go to homepage
else:
doRender(self, 'login.html')
def post(self):
in_username = self.request.get('username')
in_password = self.request.get('password')
self.session['user'] = '' #logout user if still logged in
if in_password == '' or in_username == '':
doRender(self, 'login.html',
{'error': 'Please specify Username and Password'})
return
result = User.all().filter('username =', in_username).get()
if result and security.check_password_hash(in_password, result.password) :
logging.info('session[user] ='+ self.session['user'])
self.session['user'] = in_username
self.session['usertype'] = result.usertype
self.session['msg'] = 'Welcome '+self.session['user']
self.redirect('/')
else:
doRender(self, 'login.html',
{'error': 'Incorrect Username or Password'})
「/」をホームページに移動させるその他のコード
def doRender(handler, tname='home.html', values={}):
temp = os.path.join(os.path.dirname(__file__),
'templates/' + tname)
if not os.path.isfile(temp):
return False
#make a copy of values and add the path
newval = dict(values)
newval['path'] = handler.request.path
#check if user logged in
val = handler.session.get('user')
newval['user'] = val
#if logged in, add userlinks
if handler.session.get('user') and handler.session.get('usertype') < 2:
newval['userlinks'] = [('/','Home'),
('/Programs','Programs'),
('/Volunteers','All Volunteers'),
('/Individuals','Individuals'),
('/ServiceLearners','Service Learners'),
('/Groups','Groups'),]
if handler.session.get('usertype') == 0:
newval['userlinks'].append(('/users', 'Users'))
#check if there's a msg, add it, then delete it
newval['msg'] = handler.session.get('msg')
handler.session['msg'] = ''
handler.response.write(template.render(temp, newval))
return True
そしてもちろん、ハンドラー
class MainPage(BaseHandler):
def get(self):
#check if logged in, otherwise redirect
if self.session.get('user'):
doRender(self, 'home.html')
else:
self.redirect('/login')
class Home(BaseHandler):
def get(self):
if self.session.get('user'):
time.sleep(.5)
doRender(self, 'home.html')
どんな助けでも大歓迎です!ありがとうございました