Django - разделение общих и выделенных статических файлов на компьютере разработчика

Я прошел https://docs.djangoproject.com/en/dev/howto/static-files/ и связанные с ними вопросы и ответы по Stackru относительно размещения статических файлов в Django.

Каждое приложение проекта имеет свои собственные файлы 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. Как я должен назвать выделенные файлы js & css. Я спрашиваю об этом, потому что по мере роста проекта появятся несколько приложений, имеющих файл index.js. Это будет очень запутанно с 10 файлами index.js, открытыми в редакторе. Должен ли я назвать их app1_index.js?

1 ответ

Я бы посоветовал создать "общее" приложение, содержащее общий код (обычно я его называю common или же base).

app1/static
app2/static
common/static

Ваш другой вариант также использовать оба AppDirectoriesFinder и FileSystemFinder под 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
Другие вопросы по тегам