jinja2模板中的路径分辨率

时间:2012-04-01 10:32:49

标签: python templates jinja2

我正在使用cherrypy和'views'目录中的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>

文件系统的组织方式如下:views / css,views / js,views / img

获得工作文件解析的有效方法是什么?

1 个答案:

答案 0 :(得分:1)

Jinja模板中的静态路径与Jinja无关。这都是关于Web服务器的配置。如果您正在使用flask,请使用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是正确的。