2012-04-01 11 views
2

私はこのような見解 'ディレクトリからJinja2のテンプレートをCherryPyはを使用しています:パス解決

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

私はインデックスページのレンダリング時:

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

をそれがうまく現れます(index.htmlの内側)が、参照CSS、JavaScriptと画像は解決されません。

<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

ジンジャのテンプレートの静的パスはジンジャとは関係ありません。 Webサーバーの構成に関するものです。あなたはフラスコを使用している場合、すなわち

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

静的ディレクトリの構造静的ファイルのSharedDataMiddlewareディスパッチャを使用:

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

パスの先頭にスラッシュを追加することを忘れないでください。

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

生産サーバーではSharedDataMiddlewareを使用することを強くお勧めします。 Nginxは正しいことです。

+0

私はちょっと別の設定をしていますが、手伝ってくれました。静的なパスの始めにスラッシュがありませんでした。今それはすべて動作します、+1! – dwanderson

+0

Downvoter、精巧に注意してください? –

関連する問題