配置Flask以正确加载Bootstrap js和css文件

时间:2014-02-26 16:30:13

标签: python flask

如何使用Flask中的“url_for”指令正确设置,以便使用Bootstrap和RGraph的html页面有效?

说我的html页面看起来像这样(部分片段): -

<!doctype html>
<html lang="en">
    <head>
            <meta charset="utf-8">
            <link href="scripts/bootstrap/dist/css/bootstrap.css" rel="stylesheet">
            <title>HP Labs: Single Pane Of Glass (Alpha)</title>
            <script src="scripts/RGraph/libraries/RGraph.common.core.js" ></script>
            <script src="scripts/RGraph/libraries/RGraph.line.js" ></script>
            <script src="scripts/RGraph/libraries/RGraph.common.effects.js" ></script>
            <script src="scripts/RGraph/libraries/RGraph.line.js" ></script>

 ......

 </html>

这是我已经/想要做的事情: -

  1. 在我的Flask模块旁边创建了一个“模板”目录,并将此html文件放入其中。

  2. 在我的Flask模块旁边创建了一个“静态”目录,但不确定要使用的“url_for”类型语句的位置和数量以及它们应该去的位置。所以目前“scripts”目录是“templates”目录中的一个子目录(我知道这是不正确的)。

  3. 我希望能够正确引用所有Bootstrap和RGraph js和css(现在看到很多404)。

  4. 任何人都可以指示我正确配置Flask(运行开发服务器)来执行此操作吗?现在js和css不起作用。

    谢谢!

2 个答案:

答案 0 :(得分:13)

scripts目录放在static子目录中,然后使用:

<link href="{{ url_for('static', filename='scripts/bootstrap/dist/css/bootstrap.css') }}" rel="stylesheet">

这里的模式是:

{{ url_for('static', filename='path/inside/the/static/directory') }}

将替换为正确的静态资源URL,即使您已将所有这些文件切换到其他托管(如CDN)。

答案 1 :(得分:4)

我不确定这是否有用,但我在研究烧瓶时看到了这个:

from flask.ext.bootstrap import Bootstrap
# ...
bootstrap = Bootstrap(app)

你可以pip install flask-bootstrap,它应该有帮助

然后在你的模板上:

{% extends "bootstrap/base.html" %}