2012-05-07 47 views
9

我試圖將應用程序設置了這需要一個模板HTML文件和現場修改它。它在某種程度上工作,但頁面上的圖像和CSS未被提供,並且在請求時控制檯上存在HTTP 500錯誤。靜態文件沒有被送達瓶在Python

這是我的目錄結構

Server/ 
    assets/ 
     css/ 
      img/ 
      jquery.css 
      kickstart.css 
      zellner.css 
     js/ 
      jquery.min.js 
      kickstart.js 
     style.css 
     tb_404.png 
     tbrun1.png 
     tbservers.png 
    403.html 
    404.html 
    500.html 
    appid 
    index.html 
    maintenance.html 
    server.log 
    server.py 

這是我如何設置在server.py路由:

@error(403) 
def error403(error): 
    return static_file("403.html") 

@error(404) 
def error404(error): 
    return static_file("404.html") 

@error(500) 
def error500(error): 
    return static_file("500.html") 

@route('assets/<filepath:path>') 
def server_static(filepath): 
    return static_file(filepath, root='assets') 

而在我的HTML文件,該文件鏈接如下:

<script type="text/javascript" src="assets/js/jquery.snippet.min.js"></script> 

難道這是由於靜態在資產子目錄/?或者我完全誤解了如何使用static_file?

這是錯誤,我得到了Python控制檯上的類型:

[07/May/2012 10:51:05] "GET /tempus/23 HTTP/1.1" 200 4501 <h1>Critical error while processing request: /tempus/assets/js/jquery.snippet.min.js</h1> 

我不明白爲什麼它的路由到/坦帕斯/資產/ ...

任何幫助嗎?謝謝!

回答

10

我還與提供靜態文件的問題。這裏是我的解決方案:

@route('/static/:filename#.*#') 
def send_static(filename): 
    return static_file(filename, root='./static/') 

當你想訪問一個靜態文件,例如。一個模板文件:

@route('/') 
def index(): 
    output = template('static/index.tpl') 
    return output 
+0

救了我!正確答案!謝謝! – Jmrapp

1

Your_route裝飾者對於serve_static不正確。

它應該閱讀@route('/ assets /')