проблема с медиа-путем в django - PullRequest
1 голос
/ 23 августа 2011

У меня возникли некоторые проблемы с выяснением проблемы медиа-пути в django. В файле settings.py у меня есть ADMIN_MEDIA_PREFIX = '/ media / admin /'. Таким образом, некоторые файлы CSS и JS, такие как формы.css, файлы RelatedObjectLookup.js, имеют следующий путь:

/ СМИ / администратор / JS / админ / RelatedObjectLookup.js и /media/admin/css/forms.css.

В моем проекте нет папки типа / media / admin. Однако когда я запускаю сервер с помощью скрипта manage.py и просматриваю страницу, загружаемые выше файлы css и js загружаются. Я вижу, что файлы form.css и RelatedObjectLookup.js находятся в самом django. Тем не менее, я не совсем понимаю путь в самом Джанго. Это что-то вроде этого

/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / вно / админ / СМИ / JS / calendar.js

Итак, я запутался, как файлы выбираются. В журнале сервера я вижу запрос GET для других файлов, но не для этих файлов (forms.css и RelatedObjectLookup.js)

У меня в журнале запросов myserver после запуска manage.py есть следующее.

[23/Aug/2011 02:20:36] "GET /media/js/DateTimeShortcuts.js HTTP/1.1" 304 0
[23/Aug/2011 02:20:36] "GET /media/js/custom/new_appointment_new.js HTTP/1.1" 304 0
[23/Aug/2011 02:20:36] "GET /media/js/fancybox/jquery.mousewheel-3.0.4.pack.js HTTP/1.1" 304 0
[23/Aug/2011 02:20:36] "GET /media/js/fancybox/jquery.fancybox-1.3.4.pack.js HTTP/1.1" 304 0
[23/Aug/2011 02:20:36] "GET /media/js/fancybox/jquery.fancybox-1.3.4.css HTTP/1.1" 304 0

Как вы можете, нет запроса на файлы form.css и RelatedObjectLookup.js.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Взгляните на AdminMediaHandler , который используется командой runserver . Как видите, AdminMediaHandler ничего не регистрирует.

1 голос
/ 23 августа 2011

ADMIN_MEDIA_PREFIX - это URL-путь.Если вы используете сервер с runserver, сервер Django позаботится о разрешении запросов к http://localhost/media/admin/whatever.js и обслуживании статических файлов администратора.Он не выводит GET-запросы для этих файлов на консоль.

Однако, если вы не используете runserver, вы должны убедиться, что путь, указанный ADMIN_MEDIA_PREFIX, действительно служитстатические файлы для администратора.Например, на одном из наших сайтов наш STATIC_URL равен http://static.oursite.com/, а наш STATIC_ROOT равен /srv/django-static/oursite/.ADMIN_MEDIA_PREFIX установлен на http://static.oursite.com/admin/.Когда мы запускаем python manage.py collecstatic, он берет все статические файлы и помещает их в STATIC_ROOT.Он также создает папку с именем admin в STATIC_ROOT и помещает туда все файлы администратора.Другой сервер отвечает за обслуживание файлов на http://static.oursite.com/, и он просто обслуживает папку STATIC_ROOT, в которой также есть папка admin.Таким образом, разрешаются обычные статические файлы, а также файлы для администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...