1

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

どんな助けでも大歓迎です!ありがとうございました

4

0 に答える 0