2012-09-13 116 views
0

我正在通過Flask框架實現一個Web應用程序。這個網絡應用程序即將服務器靜態HTML頁面,其結構是像Java文檔。Flask提供靜態html頁面

代碼:

從燒瓶進口燒瓶中,send_from_directory,url_for

app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

@app.route("/report") 
def view_report(): 
    url_for('static', filename='report/flexmonkey/html/') 
    return send_from_directory('static', 'report/flexmonkey/html/index.html') 

if __name__ == "__main__": 
    app.run(debug=True) 

中的index.html:

<html xmlns:lxslt="http://xml.apache.org/xslt" xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"> 
<head> 
<META http-equiv="Content-Type" content="text/html; charset=US-ASCII"> 
<title>Unit Test Results.</title> 
</head> 
<frameset cols="20%,80%"> 
<frameset rows="30%,70%"> 
<frame src="overview-frame.html" name="packageListFrame"> 
<frame src="allclasses-frame.html" name="classListFrame"> 
</frameset> 
<frame src="overview-summary.html" name="classFrame"> 
<noframes> 
<h2>Frame Alert</h2> 
<p> 
       This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. 
      </p> 
</noframes> 
</frameset> 
</html> 

目錄結構:

~/workspace/testReport/static/report/flexmonkey/html $ ls 
allclasses-frame.html alltests-fails.html automation overview-frame.html stylesheet.css 
alltests-errors.html all-tests.html  index.html overview-summary.html 

錯誤消息:

127.0.0.1 - - [13/Sep/2012 11:01:25] "GET /overview-frame.html HTTP/1.1" 404 - 
127.0.0.1 - - [13/Sep/2012 11:01:25] "GET /allclasses-frame.html HTTP/1.1" 404 - 
127.0.0.1 - - [13/Sep/2012 11:01:25] "GET /overview-summary.html HTTP/1.1" 404 - 
+0

我會建議實際添加一個問題,以便大家知道您在尋求幫助。據推測,你希望有人告訴你爲什麼你會得到這些錯誤,但這並不明顯。 您是否嘗試過在'send_from_directory'中使用不同的目錄?似乎也許問題只是你所提供的道路不太正確。也許它需要是絕對的? – aezell

+0

Armin Ronacher說:「send_from_directory的相對路徑是相對於應用程序根文件夾」。 http://flask.pocoo.org/mailinglist/archive/2011/9/26/serving-static-html-directories-via-flask/#7856224a04bc5810896ec174b7a298fb –

回答

4

你並不需要使用瓶,如果你想要做的是提供靜態文件。從您有html文件的目錄中輸入python -m SimpleHTTPServer,然後瀏覽http://localhost:8000/