烧瓶中模板和静态资源的自定义位置

时间:2012-11-27 19:50:11

标签: python flask

我正在试图弄清楚如何指定html模板和静态文件的位置,例如Flask的javascript文件。

我目前有一个结构允许像这样加载模块

/wsgi
  /templates
         /login.html
         /logout.html
         /menu.html
  /static
  /modules
         /helloworld
                   /module.html
                   /module.json
                   /module.js

我希望能够直接使用模板加载例如Javascript文件,而无需将其移动到静态文件夹。

理想情况下,我想做这样的事情

moduleHtml  = render_template(moduleHtmlPath)

并在模板内

<script type=text/javascript src="{{ url_for('myModule', filename='module.js') }}"></script>

1 个答案:

答案 0 :(得分:5)

如果您正在使用Flask的蓝图功能,则可以在蓝图中包含静态文件。有点像你所拥有的,只需要将它们放在“静态”文件夹中。该文档有一个很好的例子:

http://flask.pocoo.org/docs/blueprints/#static-files

helloworld = Blueprint('helloworld', __name__, static_folder='static')

然后引用模板中的静态文件,如下所示:

url_for('helloworld.static', filename='module.js')

如果你不熟悉蓝图,那就值得一读。他们很漂亮。

否则,Flask有一种引用全局静态文件的内置方法,但它们需要位于根“静态”目录中:

http://flask.pocoo.org/docs/quickstart/#static-files

url_for('static', filename='module.js')