Привет всем,
У меня есть сценарий Python CGI, который использует
print "Location: [nextfilename]"
print
После «пересылки» (причина появления кавычек становится очевидной через секунду), я вижу HTML-код страницы, на которую он переадресовал, но все изображения и т. Д. Не отображаются. В адресной строке по-прежнему отображается сценарий cgi в качестве текущего местоположения, а не сам файл HTML. Если я перейду к HTML-файлу напрямую, он отобразится нормально.
По сути, скрипт CGI, который хранится в cgi-bin, а файлы HTML - нет, пытается отобразить изображения с реляционными ссылками, которые не работают.
Как мне на самом деле перейти на следующую страницу, а не просто отобразить следующую страницу с помощью сценария cgi?
Я прошел через сценарий с тонкой гребенкой, чтобы убедиться, что я фактически не использовал команду print htmlDoc в любом месте, которое могло бы прервать и испортить это.
Разделы применимого кода:
def get_nextStepName():
"""Generates a random filename."""
nextStepBuilder = ["../htdocs/bcc/"]
fileLength = random.randrange(10)+5
for i in range(fileLength):
j = random.choice(varLists.ALPHANUM)
nextStepBuilder.append(j)
nextStepName = ""
for char in nextStepBuilder:
nextStepName += char
nextStepName += ".html"
return nextStepName
def make_step2(user, password, email, headerContent, mainContent, sideSetup, sideContent, footerContent):
"""Creates the next step of user registration and logs valid data to a pickle for later confirmation."""
nextStepName = get_nextStepName()
mainContent = "<h1>Step Two: The Nitty Gritty</h1>"
mainContent += "<p>User Name: %s </p>" % (user)
mainContent += """\
[HTML CODE GOES HERE]
"""
htmlDoc = htmlGlue.glue(headerContent, mainContent, sideSetup, sideContent, footerContent)
f = open(nextStepName, "w")
f.write(htmlDoc)
f.close()
nextStepName = nextStepName[9:] #truncates the ../htdocs part of the filename to fix a relational link issue when redirecting
gotoNext(nextStepName)
def gotoNext(filename):
nextLocation = "Location:"
nextLocation += filename
print(nextLocation)
print
Есть мысли? Благодаря тонну. CGI является новым для меня.