Шаблон Django не видит файлы CSS

Я пробовал ВСЕ. Провел дни экспериментов. Я не хотел блокировать вращение активности. Мой сценарий был:

  1. Диалог прогресса, показывающий динамическую информацию для пользователя. Например: «Подключение к серверу ...», «Загрузка данных ...» и т. Д.
  2. Поток выполняет тяжелую работу и обновляет диалог.
  3. Обновление интерфейса с результатами в конце.

Проблема заключалась в том, что при повороте экрана каждое решение в книге не удавалось. Даже с классом AsyncTask, который является правильным способом Android для решения этих ситуаций. При повороте экрана текущий контекст, с которым работает начальный поток, исчезает, и это портится в отображаемом диалоговом окне. Проблема всегда была в диалоге, независимо от того, сколько трюков я добавил в код (передача нового контекста запущенным потокам, сохранение состояний потоков посредством вращений и т. Д.). Сложность кода в конце всегда была огромной, и всегда было что-то, что могло пойти не так.

Единственное решение, которое сработало для меня, это трюк «Активность / Диалог». Это просто и гениально, и все это доказательство вращения:

  1. Вместо того, чтобы создавать диалог и просить показать его, создайте действие, которое было установлено в манифесте с android: theme = "@ Android: стиль / Theme.Dialog». Так что это просто похоже на диалог.

  2. Замените showDialog (DIALOG_ID) на startActivityForResult (yourActivityDialog, yourCode);

  3. Используйте onActivityResult в вызывающем Activity для получения результатов из выполняющегося потока (даже ошибок) и обновите пользовательский интерфейс.

  4. В «ActivityDialog» используйте потоки или AsyncTask для выполнения длинных задач и onRetainNonConfigurationInstance для сохранения «диалогового» состояния при повороте экрана.

Это быстро и отлично работает. Я все еще использую диалоги для других задач и AsyncTask для чего-то, что не требует постоянного диалога на экране. Но в этом сценарии я всегда использую шаблон «Активность / Диалог».

И я не пробовал, но даже можно заблокировать вращение Activity / Dialog во время работы потока, ускоряя процесс, одновременно позволяя вызывающему Activity вращаться.

20
задан Jiaaro 23 March 2016 в 21:55
поделиться

5 ответов

в блоке "только для разработки" в вашем urls.py вам необходимо изменить

(r'^media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/media'}),

на ...

(r'^media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': settings.MEDIA_ROOT}),
13
ответ дан 30 November 2019 в 01:08
поделиться

ADMIN_MEDIA_PREFIX по умолчанию установлен на \ media \ и, вероятно, «крадет» путь. Измените этот параметр или используйте другой для носителей без прав администратора - например, site_media или assets . ​​

5
ответ дан 30 November 2019 в 01:08
поделиться

У меня была аналогичная проблема, когда я пытался заставить работать jQuery. Мое исправление заключалось в том, чтобы добавить к моему файлу Apache httpd.conf псевдоним, указывающий на папку, содержащую .js. Вы можете сделать то же самое с папкой CSS.

0
ответ дан 30 November 2019 в 01:08
поделиться

На сервере разработки мне нравится обманывать и помещать следующее в свой urls.py

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^includes/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/static/files'}),
    )

Таким образом, все в проекте в папке "/ includes" является сервером сервера разработки. . Вы можете просто изменить это на "/media".

"
2
ответ дан 30 November 2019 в 01:08
поделиться

У меня тоже сработало, спасибо, ребята !!

settings.py

MEDIA_ROOT = '/home/pi/ewspaces/ws-classic/xima/media'

MEDIA_URL = '/statics/'

urls.py

if settings.DEBUG:
urlpatterns += patterns('',
    (r'^statics/(?P<path>.*)$', 'django.views.static.serve',  
     {'document_root':     settings.MEDIA_ROOT}),
)

внутри шаблонов:

<link type="text/css" href="/statics/css/base/jquery.ui.all.css" rel="stylesheet" />
1
ответ дан 30 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: