0

背景: https://bitbucket.org/mariocesar/django-hgwebproxy/wiki/Homeを使用して、構築中の Django サイトに Mercurial ブラウザーを追加しています。

私が抱えている問題は次のとおりです。HGリポジトリに保存している特定のファイルはバインドゾーンファイルであり、たまたま名前が付けられているため、生を返すときに/some/path/somedomain.comhgwebがコンテンツタイプをapplication/x-msdos-program(コンテンツが本当にある場合)に設定しますtext/plainファイルの表示。コンテンツ タイプが正しくないため、hgwebproxy はコンテンツを返すだけでなく、ページ テンプレートにダンプします。テンプレート化をスキップするには、次のようなテストを行います。

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

もちろん、いくつかの可能な解決策は

  1. すべてのファイルの名前を .zone に変更します (不十分で時間がかかります)
  2. 渡すために hgwebproxy をハックしますapplication/x-msdos-program(ラメとダーティ)
  3. 正しい content-type を使用するように hgweb を説得します (素晴らしい! 助けていただければ幸いです)
4

1 に答える 1

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']
于 2012-05-01T19:29:47.510 に答える