我正在尝试使用Jinja2将我的javascript文件夹的路径发送到模板。 javascript文件夹与index.py位于相同的路径中,但问题是index.html位于templates文件夹中,无法加载url。那我怎么能用jinja发送相对网址呢?
index.py
import cherrypy
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
class Root:
@cherrypy.expose
def index(self):
tmpl = env.get_template('index.html')
sidebar = env.get_template('sidebar.html')
return tmpl.render(javascript_folder="js",sidebar=sidebar.render())
模板/ index.html中
<script src="{{javascript_folder}}+/jquery.js" >
答案 0 :(得分:0)
如果您的js路径不会改变,那么我只会使用静态路径。
<script src="/js/jquery.js" >
如果你想要改变js文件的物理路径,这取决于你在这里的系统,你可以这样做......
import os
import cherrypy
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
class Root:
@cherrypy.expose
def index(self):
tmpl = env.get_template('index.html')
return tmpl.render(javascript_folder=os.path.dirname(__file__),sidebar=sidebar.render())
但丹尼尔是正确的,你需要在cherrypy中启用静态内容服务。这是怎么做的......
config = {'/static':
{'tools.staticdir.on': True,
'tools.staticdir.dir': PATH_TO_STATIC_FILES,
}
}
cherrypy.tree.mount(MyApp(), '/', config=config)
http://docs.cherrypy.org/stable/progguide/files/static.html
希望这有帮助!