Django - 分享共享& dev机器上的专用静态文件

时间:2013-11-18 07:28:16

标签: django django-staticfiles django-dev-server

我经历过https://docs.djangoproject.com/en/dev/howto/static-files/&有关在Django上放置静态文件的stackoverflow的相关Q& A。

每个项目应用程序都有自己的专用js& css文件。另外还有共享的js&所有应用程序中常见的css文件(例如jquery)。

 app1
   └── static
         └── app1
              ├── index.js
              ├── index.css
              ├── jQuery.1.10.2.js
              └── jquery-ui-1.10.3\...
 app2
   └── static
         └── app2
              ├── index.js
              ├── index.css
              ├── jQuery.1.10.2.js
              └── jquery-ui-1.10.3\...


问题(特定于开发环境):

  
      
  1. 我应该在哪里放置jquery& jquery-ui文件?上述设置导致冗余。

  2.   
  3. 我应该如何命名专用的js& css文件。我问这个是因为随着项目的增长,会有多个应用都拥有index.js文件。在编辑器中打开10个index.js文件会非常混乱。我应该叫他们app1_index.js吗?

  4.   

1 个答案:

答案 0 :(得分:2)

我建议创建一个包含公共代码的“共享”应用程序(我通常将其命名为commonbase)。

app1/static
app2/static
common/static

您的另一个选择是同时使用AppDirectoriesFinderFileSystemFinder下的STATICFILES_DIR。这是我对这种方法的设置(所有os.path内容只是使路径相对):

STATICFILES_DIRS = (
    os.path.normpath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', 'base')),
]

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]

关于命名以避免冲突。我建议使用静态资产中的目录来区分:

app1/static/app1/index.js
ap21/static/app2/index.js