2012-04-01 89 views
2

我使用CherryPy的Jinja2的與模板從「若干意見」的目錄是這樣的:路徑解析

env = Environment(loader = FileSystemLoader('views')) 

當我呈現的索引頁:

index = env.get_template('index.html') 

它顯示了罰款,但引用的css,javascripts和圖像(在index.html中)未被解析:

<head> 
    <link rel="stylesheet" type="text/css" media="screen" href="css/web.css"> 
    <link rel="shortcut icon" type="image/png" href="img/favicon.png"> 
    <script src="js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script> 
</head> 

文件系統是有組織的ke:views/css,views/js,views/img

什麼是獲得工作文件解析的可靠方法?

回答

1

Jinja模板中的靜態路徑與Jinja無關。這完全是關於Web服務器的配置。如果您使用的燒瓶中,用SharedDataMiddleware調度靜態文件,即

from werkzeug import SharedDataMiddleware 
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, 
            { '/static': '/path/to/static/files' }) 

靜態目錄的結構:

.../static/ 
      img/ 
      css/ 
      js/ 
      etc/ 

不要忘記在路徑的開頭添加斜線:

<link rel="shortcut icon" type="image/png" href="/static/img/favicon.png"> 

強烈建議在生產服務器上使用SharedDataMiddleware。 Nginx是正確的。

+0

我在一個不同的設置,但幫助進行:我沒有在我的靜態路徑開始的斜槓。現在一切正常,+1! – dwanderson 2014-02-09 23:18:19

+0

Downvoter,謹慎講解? – 2014-05-04 08:47:24