2012-05-01 1 views
0

Фон: я использую https://bitbucket.org/mariocesar/django-hgwebproxy/wiki/Home, чтобы добавить браузер Mercurial на сайт Django, который я создаю.hgweb raw view возвращает неправильный контент-тип

Проблема, с которой я столкнулся: конкретные файлы, которые мы храним в репозитории HG, являются файлами зоны привязки и, как оказалось, имеют имя /some/path/somedomain.com, что приводит к тому, что hgweb устанавливает тип содержимого в application/x-msdos-program (когда содержимое действительно text/plain) при возврате исходного вида файла. Неверный тип содержимого заставляет hgwebproxy удалять содержимое в шаблон страницы, а не просто возвращать его. Это испытание, как это пропустить шаблонизации:

if response['content-type'].split(';')[0] in ('application/octet-stream', 'text/plain'): 
    return response 

Некоторых решений являются Возможными конечно

  1. Переименовать все файлы .zone (Lame и время)
  2. Hack hgwebproxy пройти application/x-msdos-program (Lame и грязный)
  3. Убедить hgweb использовать правильный тип содержимого (Awesome! Я надеюсь, что вы поможете)

ответ

0

hgweb использует mimetypes для обнаружения типа mime файла. Возможно, вы сможете переопределить определение суффиксов «.com», добавив файл настроек. См .: mimetypes.knownfiles:

>>> import mimetypes 
>>> mimetypes.init() 
>>> mimetypes.knownfiles 
['/etc/mime.types', '/etc/httpd/mime.types', '/etc/httpd/conf/mime.types', '/etc/apache/mime.types', '/etc/apache2/mime.types', '/usr/local/etc/httpd/conf/mime.types', '/usr/local/lib/netscape/mime.types', '/usr/local/etc/httpd/conf/mime.types', '/usr/local/etc/mime.types'] 
+0

Спасибо! Мне нужно было вытащить это из двери, поэтому я только что изменил /etc/mime.types. –

 Смежные вопросы

  • Нет связанных вопросов^_^