Django 项目中第三方静态文件的推荐目录布局是啥?

Posted

技术标签:

【中文标题】Django 项目中第三方静态文件的推荐目录布局是啥?【英文标题】:What is the recommended directory layout for third-party static files in Django projects?Django 项目中第三方静态文件的推荐目录布局是什么? 【发布时间】:2015-04-25 12:25:47 【问题描述】:

对于我的 Django 项目中的第三方 (jquery) 代码,我为我的静态文件采用了一个目录结构,将所有第三方文件放在一个单独的 lib 子目录中。更具体地说,这是我的目录树当前的样子:

myproject/
  myproject/
    static/
      css/
        my-own-stylesheet.css
        lib/
          bobs-stylesheet.css
          joes-stylesheet.css
      img/
        my-own-image.png
        lib/
          bobs-image.png
          joes-image.png
      js/
        my-own-javascript.js
        lib/
          bobs-javascript.js
          joes-javascript.js

这是为了完成两件事: 1. 将我自己的资产与第三方资产分离。 2.分离css、img、js文件。

当然,只要路径都正确,这样就可以正常工作,但是在 Django 项目中,第三方材料的位置实际上有约定吗?

我也考虑过

myproject/
  myproject/
    static/
      css/
      img/
      js/
      lib/
        bob/
          css/
          img/
          js/
        joe/
          css/
          img/
          js/

我想知道我是不是想多了,但是有没有“最佳实践”呢?

【问题讨论】:

我使用你的最后一种方法。将每个第三方资产保持隔离可以简化更新(无论如何,您不应该接触它们)。 【参考方案1】:

最后一种方法要好得多。

    您可以简单地解压缩第三方库并粘贴文件夹。您无需手动将每个文件复制并粘贴到不同的文件夹中。 您还可以使用带有目录结构的 bower 等前端包管理工具(我推荐)。 您可能不需要将第三方目录结构调整为 css、js 和图像。您可以保留任何内容。

如果您的项目有点大,您可以考虑为您创建的每个应用创建不同的目录。

这是我通常遵循的目录结构:

myproject/
  myproject/
    static/
      my_app_1
        css/
        img/
        js/
      my_app_2
        css/
        img/
        js/
      lib/
        bob/
          what_ever_directory_str_it_has
        joe/
          css/
          img/
          js/ 

【讨论】:

以上是关于Django 项目中第三方静态文件的推荐目录布局是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Django_设置静态文件上传文件

Django_设置静态文件上传文件

Django_生产环境静态文件配置

Django中静态文件之各个配置详解

Django配置管理settings文件配置

django之管理静态文件