3

我试图弄清楚如何指定 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>
4

1 回答 1

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')
于 2012-11-27T20:21:04.960 回答