Статические файлы не найдены в django 1.4

Во время развертывания приложения Django. У меня проблема со статическими файлами. У меня есть файлы JS и CSS в статическом каталоге. Но браузер не может найти эти файлы. У меня те же файлы и настройки на локальном компьютере, который является Ubuntu так же, как серверная ОС, и работает на локальном компьютере. Хотя он имеет те же настройки, но я вставляю этот статический каталог и настройки файлов ниже.

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(ROOT_PATH,'static')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'


# Additional locations of static files
STATICFILES_DIRS =(
                os.path.join(ROOT_PATH,'static'),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

Здесь корневой путь в приведенном выше коде определен до этого:

import os
#from django.contrib.sites.models import Site
ROOT_PATH = os.path.dirname(__file__)

Я использую mod_wsgi с apache2, в моем понимании он должен найти файлы при загрузке /somefoldername, тогда браузер должен зайти в этот каталог, но не понял, в чем проблема. Чтобы узнать об окружении, настройках wsgi и т. Д., Я следую ниже, вот вопрос, в котором я разместил информацию о моем файле wsgi и о том, как он работает: ошибка 500 на сервере django после перехода на сервер

У меня много раз возникали проблемы при поиске приложений и других шаблонов, модулей и т. Д. Даже в команде syncdb на сервере, для шаблонов я добавил корневой путь, и он начал работать, а также добавил путь к проекту в файле wsgi, но проблема статических файлов не решена. Пожалуйста, скажите, если вы, ребята, имеете какое-либо представление о том, что я делаю неправильно или в чем проблема здесь.

заранее спасибо ребята

2 ответа

Решение

Документация по Django охватывает эту тему. Увидеть:

Когда вы запускаете "collectstatic", все ли файлы копируются в STATIC_ROOT?Сначала вы должны проверить это, чтобы знать, где находятся файлы.

Вы настроили apache для обслуживания статических файлов в STATIC_ROOT как "/ static /"? Django не предоставляет статические файлы для вас в производственной среде (DEBUG=False), поэтому вам необходимо настроить программное обеспечение веб-сервера так, чтобы оно обслуживало вас.

Кроме того, я не думаю, что вы хотите, чтобы ваши STATICFILES_DIRS содержали тот же путь, что и STATIC_ROOT. Файлы копируются из директорий в STATICFILES_DIRS в STATIC_ROOT. Ваш STATICFILES_DIRS должен содержать каталоги, которые иначе не ищутся во время "collectstatic".

Предупреждение

Это будет работать, только если DEBUG - True.

Это потому, что это представление крайне неэффективно и, вероятно, небезопасно. Это предназначено только для локальной разработки и никогда не должно использоваться в производстве.

Если вам по-прежнему требуется статический сервер локально (например, для тестирования без отладки), вы можете запустить сервер разработки в небезопасном режиме:

python manage.py runserver --insecure

Приятного настроения:)

Другие вопросы по тегам