我将 cherrypy 与来自“views”目录的 jinja2 模板一起使用,如下所示:
env = Environment(loader = FileSystemLoader('views'))
当我呈现索引页面时:
index = env.get_template('index.html')
它显示正常,但引用的 css、javascript 和图像(在 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
什么是获得工作文件分辨率的可靠方法?
请您参考如下方法:
Jinja 模板中的静态路径与 Jinja 无关。这都是关于网络服务器的配置。如果您使用的是 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 是对的。
