我正在使用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
获得工作文件解析的有效方法是什么?
答案 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是正确的。