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\...
Вопрос (специфичный для среды разработки):
Где я должен разместить файлы jquery & jquery-ui? Вышеуказанная настройка приводит к избыточности.
Как я должен назвать выделенные файлы 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