2

这可能是一个菜鸟问题,但我想知道将 Python 添加到 Twitter Bootstrap(我只是在学习这两个)

谁能给我一些我应该拥有的文件夹结构的想法?我假设我的 Python 文件夹与我的 Bootstrap 项目文件夹处于同一级别?

例如

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 目录的最佳方法的问题

与往常一样,提前致谢。

4

2 回答 2

8

不管框架是什么,或者你是否使用框架,最好有一个地方来保存你的静态文件(这将是你所有的 twitter 引导内容)。

为了清楚起见,我个人将我的分成img, css, js, fonts。像这样:

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 示例:

location ~ ^/static/  {
      alias    /path/to/static/;
      expires 30d;
    }

所以www.yoururl.com/static/img/glyphicon-halflings.png很容易从您的文件系统中找到和提供服务。

作为额外的奖励,如果您正在使用 Python 进行 Web 开发,那么有一些很棒的框架可以帮助您了解很多基础知识。他们还有大量关于在开发和生产部署中处理静态文件的文档。

我用过:

但也有:

还有更多

Edit1 - 额外奖励信息:

我说我会加一点。以下是我管理静态文件的方式:

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

如果我使用 Flask(或非 django),我会使用 Grunt。虽然不是真正用于 Python 开发,但它很容易连接到持续集成系统(如 Jenkins)中,并且还可以为您组合、连接和压缩您的 CSS 和 JS。尽管如此,仍然没有解决唯一的哈希。

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

像这样:

|-- 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 配置 -expires max将让用户将文件永久保存在浏览器缓存中:

location ~ ^/static-min/  {
      alias    /path/to/static-min/;
      expires  max;
    }
于 2013-05-29T15:37:08.073 回答
0

Bootstrap 是一个仅限客户端的库,因此static/lib/bootstrap为了保持一致性,您可能应该将它放在类似的东西下。

于 2013-05-29T15:33:12.943 回答