将Python添加到Twitter Bootstrap

Adding Python to Twitter Bootstrap

这可能是一个无意义的问题,但我想知道如何将python添加到twitter引导程序中(这两个问题我都只是在学习)

有人能告诉我一些我应该有的文件夹结构吗?我假设我的python文件夹与我的bootstrap项目文件夹处于同一级别?

例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
MyProject/
|-- Python/
|   |-- bin
|   |   |-- app.py
|   |-- docs
|   |-- sessions
|   |-- tests
|   |   |-- project_tests.py
|  
|-- bootstrap/
|   |-- css
|   |   |-- bootstrap.css
|   |   |-- bootstrap.min.css
|   |  
|   |-- js
|   |   |-- bootstrap.js
|   |   |-- bootstrap.min.js
|   |-- img
|   |   |-- glyphicon-halflings.png.
|   |   |-- glyphicon-halflings.png.

我直接从下载站点得到了引导文件结构,我在这里研究关于设置python目录的最佳方法的这个问题。

一如既往,提前谢谢。


无论您是否使用框架,最好有一个单独的位置来保存静态文件(这将是您的Twitter引导程序的所有内容)。

就我个人而言,为了清楚起见,我把我的分为:imgcssjsfonts。就像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
MyProject/
|-- Python/
|   |-- bin
|   |   |-- app.py
|   |-- docs
|   |-- sessions
|   |-- tests
|   |   |-- project_tests.py
|  
|-- static/
|   |-- css/
|   |   |-- bootstrap.css
|   |   |-- bootstrap.min.css
|   |   |-- my_custom_styles.css
|   |-- js/
|   |   |-- bootstrap.js
|   |   |-- bootstrap.min.js
|   |-- img/
|   |   |-- glyphicon-halflings.png
|   |   |-- glyphicon-halflings.png
|   |-- fonts/
|   |   |-- cool_font

这样做的好处是,当您使用Web服务器提供静态内容时,可以在模板中使用/static/,并将其指向文件系统上的/static/文件夹。nginx示例:

1
2
3
4
location ~ ^/static/  {
      alias    /path/to/static/;
      expires 30d;
    }

因此,www.yoururl.com/static/img/glyphicon-halflings.png很容易从文件系统中找到并提供服务。

另外一个好处是,如果您正在使用Python开发Web,那么有一些很棒的框架可以帮助您完成很多基础工作。他们还拥有在开发和生产部署中处理静态文件的大量文档。

我用过:

    百万千克1Django-这是静态文档百万千克1百万千克1flask-这里是静态文件文档百万千克1

但也有:

    百万千克1塔架百万千克1百万千克1web2py百万千克1

还有更多!

编辑1-额外奖金信息:

我说我要多加一点。以下是我如何管理静态文件:

当我使用django时,我使用django压缩器,它将自动组合并最小化模板中的内联CSS和JS。它还添加了一个唯一的标识哈希,这样您可以在未来数年内设置缓存头,以节省带宽并减少加载时间。如果您更改静态文件,它会自动修改散列值-它们由浏览器下载。

如果我用的是烧瓶(或者别的什么东西不是姜戈),我用的是咕噜。虽然这并不是针对Python开发的,但是很容易连接到一个持续集成系统(比如Jenkins)中,并且还可以为您合并、连接和压缩CSS和JS。但仍然没有解决唯一的哈希。

这些新的压缩文件,我放进了一个新的目录-static-min。然后我有一个bash脚本,它循环遍历我的static-min目录中的所有文件,并gzip它们(使用10个最大gzip压缩),但保持它们的名称不变。这样,如果受支持的浏览器请求您的站点,nginx将为压缩的静态文件提供服务。

就像这样:

1
2
3
4
5
6
7
|-- static-min/
|   |-- css/
|   |   |-- all_css_concatenated_minimised-723974hgjsf.css
|   |   |-- all_css_concatenated_minimised-723974hgjsf.css.gz
|   |-- js/
|   |   |-- all_js_concatenated_minimised-djad7rhea8f.js
|   |   |-- all_js_concatenated_minimised-djad7rhea8f.js.gz

nginx config-expires max将使用户永久保存在浏览器缓存中的文件:

1
2
3
4
location ~ ^/static-min/  {
      alias    /path/to/static-min/;
      expires  max;
    }


引导程序是一个客户端专用的库,因此为了一致性,您可能应该将它放在类似于static/lib/bootstrap的地方。