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

Для ясности, панель инструментов отладки ДЕЙСТВИТЕЛЬНО появляется. Моя проблема в том, что когда я включаю панель инструментов отладки, все мои файлы javascript и css не загружаются.

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

Я использую debug_toolbar 1.3.2, django1.5.0 и python 2.7.6

В моей структуре проекта

В моем файле настроек:

project_dir
  project
  settings
    settings.py
  static
    images
    js
    scss
    stylesheets

Естественно, я не могу отправить какой-либо запрос ajax, и установка DEBUG_TOOLBAR на false решает все проблемы.

DEBUG = True
DEBUG_TOOLBAR = True 

#....middleware
#....other Installed apps
cd_up = lambda x: os.path.split(x)[0]
SETTINGS_DIR = dirname(os.path.abspath(__file__))
APP_DIR = cd_up(SETTINGS_DIR)
PROJ_DIR = cd_up(APP_DIR)

MEDIA_ROOT = '/tmp'
MEDIA_URL = ''
STATIC_URL = '/static/'
STATIC_ROOT = '{}/static/'.format(APP_DIR)

if DEBUG_TOOLBAR:
  INSTALLED_APPS += ('django.contrib.staticfiles','debug_toolbar',)
  MIDDLEWARE_CLASSES += debug_toolbar.middleware.DebugToolbarMiddleware',)
  INTERNAL_IPS = ('127.0.0.1',)
  DEBUG_TOOLBAR_PANELS = (
    #'debug_toolbar.panels.version.VersionDebugPanel',
    #'debug_toolbar.panels.timer.TimerDebugPanel',
    #'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    #'debug_toolbar.panels.headers.HeaderDebugPanel',
    #'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    #'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    #'debug_toolbar.panels.signals.SignalDebugPanel',
    #'debug_toolbar.panels.logger.LoggingPanel',
  )

Это сокращенная версия, но если потребуется какая-либо другая информация, я обновлю ее. Извините, я все еще новичок в SO. Спасибо

ОБНОВЛЕНИЕ: при запуске ./manage.py runserver --insecure появляются ошибки 404.

В противном случае ресурс выходит из строя с сообщением net :: ERR_NETWORK_CONNECTION_RESET

Я не уверен, что происходит, но вот несколько моментов, которые нужно проверить:


person Murphy4    schedule 16.07.2015    source источник


Ответы (2)


Когда DEBUG_TOOLBAR имеет значение false, находится ли django.contrib.staticfiles в INSTALLED_APPS? Если он был добавлен, эта строка

  1. INSTALLED_APPS + = ('django.contrib.staticfiles', 'debug_toolbar',)

    может привести к дублированию имени приложения. Это не должно вызвать никаких проблем, но вы можете попробовать удалить дубликат.

    Вы уверены, что для DEBUG установлено значение True? Когда DEBUG имеет значение False, сервер разработки отказывается обслуживать статические файлы (CONNECTION RESET?), И если вы добавите параметр --insecure, он будет обслуживать статические файлы. Это похоже на то, что вы описали.

  2. Вы изменили сопоставление URL-адресов "/ static /" в urls.py?

  3. Вы запускаете этот сервер на виртуальной машине? Если это так, вы можете попробовать запустить свой сервер с помощью:

  4. python manage.py runserver 0.0.0.0:8000

    и добавьте IP-адреса вашей виртуальной машины в INTERNAL_IP.

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

person NeoWang    schedule 16.07.2015
comment
Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/loggedin.css?h=201e99 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/estimates.tabs.css?h=64c8f9 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/js/jquery.console-log.js Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/theme/jquery-ui.custom.css Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/js/jquery.if.min.js?h=e69918 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/js/base.js?h=4b783f Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/estimates.summary.show.css?h=0dd5d5 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/js/jquery.floatThead.min.js?h=7f4ca5 Не удалось загрузить ресурс: сервер ответил статус 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/reset.css?h=fbd5ac Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/js/reviews.section.sortable.js?h=2ea052 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/loggedin.css?h=201e99 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/estimates.tabs.css?h=64c8f9 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/estimates.summary.show.css?h=0dd5d5 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/reset.css?h=fbd5ac Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/stylesheets/base.css?h=fcefb2 Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) http://127.0.0.1:8000/static/theme/jquery-ui.custom.css Не удалось загрузить ресурс: сервер ответил статусом 404 (НЕ НАЙДЕН) - person Murphy4; 16.07.2015

Спасибо за ответ, из поиска других связанных ответов я пробовал все эти вещи. Я не на виртуальной машине, но у меня есть статический URL-адрес, переопределенный для режима отладки.

person Xulw    schedule 13.08.2020