Это нормально, что при запуске collectstatic с django также копируются модули python? - PullRequest
3 голосов
/ 14 марта 2012

Я бы хотел разместить приложение Django на сервере Apache, используя mod_wsgi.

До сих пор я был в среде разработчиков с использованием утилиты runserver Django.

Я удивлен, чтокогда я запускаю команду collecstatic из модулей Python Django, файлы также копируются в STATIC_ROOT.Я ожидал бы иметь только CSS и файлы изображений ...

Это нормальное поведение?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 февраля 2013

У меня была та же проблема, и я обнаружил, что это потому, что случайно забыл запятую в кортеже STATICFILES_DIRS.

STATICFILES_DIRS = (
    ('', os.path.join(PROJECT_ROOT,'static')), # trailing comma to make this a tuple
)

Как и в случае с Python, без хотя бы одной запятой в круглых скобках, это интерпретируется как вызов функции, которая запутала настройку.

Как правило, в настройках Django всегда рекомендуется ставить запятую в конце каждого списка и элемента кортежа или использовать списки исключительно, так как им не нужны запятые для отдельных элементов.

1 голос
/ 14 марта 2012

collectstatic просто копирует все файлы, которые он находит в каталогах, которые вы указали для просмотра.Что именно это, зависит от того, какие искатели вы используете (STATICFILES_FINDERS в settings.py).По умолчанию включен AppDirectoriesFinder, который просматривает каталоги с именем «static» в каталогах вашего приложения, а также FileSystemFinder, который просматривает каталоги, указанные в STATICFILES_DIRS в файле settings.py.

Все файлы в этих каталогах будут скопированы.Django не различает файлы Python (например, модели, виды ...) и другие типы файлов.Так что, я думаю, у вас должны быть файлы Python в неправильном каталоге или неправильном каталоге в пути поиска.Вы должны проверить структуру каталогов, чтобы решить вашу проблему.Однако вы можете быстро исправить это, используя ./manage.py collectstatic -i *.py, который, согласно docs , заставляет collectstatic игнорировать все файлы с расширением .py.Но я этого не проверял.

Надеюсь, это поможет.

...