【发布时间】:2014-05-24 12:15:36
【问题描述】:
我正在运行一个 webpy + Apache 服务器。当我尝试导航到 /projects/Index (过去一直有效)时,我收到 404 not found 错误。当我检查 ctx.fullpath 时,它说请求的路径是 /redirect:/code.py/projects.pyc/Index/Index,而实际上它只是 /projects/Index。为什么会发生这种情况,我能做些什么来解决它?
在我的主应用程序文件中,我有以下代码:
urls = (
"/stream","stream",
"/","index",
"/projects","projects",
"/prj/(.+)", "projects",
"/projects/(.+)", "projects",
"/files","files",
"/login", "login",
"/Firewall", collector.app_firewall,
)
app = web.application(urls, globals())
session = web.session.Session(app, web.session.DiskStore('/var/www/sessions'), initializer={'count': 0})
application = app.wsgifunc()
class Content:
root = "/var/www/static" #default document root for open()
title = "Brian Barrett" #default title
content = Content()
content.user = "login"
class index:
def GET(self):
content.title = "Brian Barrett"
content.content = open(content.root + "/index.html", "r").read()
return render.layout(content)
class projects:
def GET(self, project):
content.title = project
content.content = "Project not found! Check <a href='/projects/index'>here</a>."
if project.endswith("js"):
return open(content.root + "/projects/" + project).read()
#the following returns the index of all projects
if project.lower() == "index" or not project or project == "":
content.title = "Projects"
content.content = open(content.root + "/prj/projects.html", "r").read()
return render.layout(content)
#find project in /static/projects, return that
else:
html_projects = [] # new array
for root, dirs, files in os.walk("/var/www/static/prj/"):
for file in files:
if file.endswith(".html"): #if it is an html file
html_projects.append(os.path.join(root, file)) #put HTML in array
for p in html_projects:
if p.find(str(project.lower())) != -1: #if the filename has the request in it
content.content = open(p, "r").read() # set content to said HTML
content.title = project.replace("_"," ") # important! links must have capitalized titles
return render.layout(content)
【问题讨论】:
标签: python apache http-status-code-404 web.py