django 维护静态文件有两种方法,一是把静态文件放在每个 app 下面的 static 目录里面。配置了 staticfiles app 的 django 会自动找到静态文件。另外一种方法是统一放到 settings.py 的 STATICFILES_DIRS 所列出的目录。我们的项目使用后一种方法,在项目的根目录下面放两个目录,一个是 frontend,给前端放置当前项目的静态文件使用。另外一个是 frontend_common,给前端放置各个项目公用的静态文件。前一个目录与后端代码放在同一个 hg 仓库里面,而后一个目录是单独的 hg 仓库,再配置为当前项目的子仓库。
这么做的好处,很多项目使用同一部分代码时,在一个项目里面更新时,另外一些项目也会被更新。
后端的公用模块也是这么处理的。hg 子仓库的功能确实很好用。
ps: frontend 和 frontend_common 这两个目录和发布使用的 static 目录不一样。./manage.py collectstatic 会复制两个目录的内容(编译输出到 frontend/dist/ 和 frontend_common/dist/)到 static 目录里面,再发布到单独的 nginx 静态 web 服务器(或者 cdn 服务商)那边。
--
FROM 120.41.186.*