具体来说,页面使用可选的正则表达式。通过可选,我的意思是下面的PAGE_RE。
我正在创建一个Wiki。如果用户搜索某个术语,并且该术语尚不存在,则会将用户重定向到编辑页面,以便他们可以创建新内容。但是,只有在用户登录时才会发生这种情况。要确定用户是否已登录,我会检查cookie。如果用户没有登录(没有cookie),那么我将重定向而不是编辑页面来创建新内容,而是重定向到登录页面,由下面的Login类处理。用户登录,创建cookie,然后将其重定向到编辑页面以创建他们最初搜索的内容。为了记住他们的主题是什么,所以我可以在登录后重定向,我将主题(以'/topic'
形式)发送到Login类,在那里它被get
作为参数接收并且post
方法。如果用户只是访问该站点并正常登录,则会将其重定向到主页,但在这种情况下,因为get
和post
已收到该主题且不是{{1我使用下面的行None
将它们发送到原始目的地。问题是,css不适用于下面使用PAGE_RE的两个网址。 JsFiddler4显示有一个涉及self.redirect('/edit/%s' % topic[1:])
的404。一段时间后,当它收到额外的“主题”参数时,它突然点击该网址不是登录页面的网址。 /login/css/wiki.css
也是如此。当它们有时不同时,我如何让这些页面/网址上的CSS工作?我不知道发生了多长时间,然后我下载并运行了JsFiddler4并弄明白了。我正在使用Google App Engine,webapp2,jinja2。任何帮助非常感谢。除了这两页,css工作正常。
此代码无序且不完整,但我希望它足够
EditPage
答案 0 :(得分:0)
好的,我解决了这个问题。这是似乎正在发生的事情。 这个重定向是向上面的Login类发送一个参数:
self.redirect('login/%s' % wiki_topic) #wiki_topic = something like 'topic'
在查找页面的css时,似乎会发生直到'/'
的路径的最后一部分,取而代之的是css的路径,'/css/wiki.css'
就我而言。
所以我传递了'login / topic',只是'topic'被css路径替换为:
'login/css/wiki.css'
而不是正确的'css/wiki/css'.
为了防止这种情况发生,我改变了从
重定向到Login类的行self.redirect('login/%s' % wiki_topic) to >> self.redirect('login%s' % wiki_topic)
第二个版本在%s之前没有斜杠。