如何将目录发送到jinja2

时间:2013-12-30 15:01:38

标签: javascript python jinja2

我正在尝试使用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" >

1 个答案:

答案 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

希望这有帮助!