web-dev-qa-db-ja.com

Subversion Apacheモジュールがsvn:mime-typeプロパティを使用せずにhtml content-typeを持つhtmlファイルを提供することは可能ですか?

svn:mime-typeファイルの.htmlSubversionプロパティをtext/htmlに設定すると、Apache httpdのSubversionモジュールを介してブラウザーでファイルを表示すると、ファイルが提供されることを認識しています。 Content-Type: text/htmlヘッダー。ブラウザが、プレーンテキストではなくHTMLとしてレンダリングできるようにします。

ただし、これを行う方法を探していますなしsvn:mime-typeプロパティを使用します。

プロパティを自動的に追加するようにsvnクライアントを構成できることは承知しています。すべてのユーザーがこれらの設定を持っていることを確認したくないので、これは私が望むものではありません。また、ユーザーにプロパティの設定を強制するために、プロパティが設定されていない場合にコミットを拒否するpre-commitフックを作成できることも認識しています-それにフォールバックする可能性がありますが、もっと少ないものを探しています押し付けがましい。

また、コミット後のフックを使用して、サーバー側でプロパティを自動的に追加できることも認識しています。私はそれをしたくありません(ユーザーはコミット後すぐに更新する必要があり、書くのは簡単ではありません)-私はより良い代替手段を探しています。おそらく、Apacheサーバーの書き換えルールに何かありますか?

4
Martin Pain

簡単な答え-はい-ModMimeUsePathInfoをonに設定して、ApacheがMIMEタイプを処理できるようにします。

より長い答え-はい。ただし、Apacheサーバー内で比較的最新バージョンのSubversionを使用する必要があります。

通常、コンテンツはSubversionリポジトリに問い合わせているmod_dav_svnモジュールによって提供されているため、mime-typeはSubversionモジュールによって指定されます。

これまで、これはsvn:mime-typeプロパティを使用してのみ構成できました。同様のことを実行しようとしている人の例については、Subversionユーザーのメーリングリストの このスレッド を参照してください。

ここで、ModMimeUsePathInfoディレクティブを使用すると、mod_mimeを使用して指定するMIMEタイプを把握するようにApacheに指示されます。詳細については、Subversionブックの 付録C、WebDAV、およびAutoversioning を参照してください。

具体的には次のようなものです。

<Location /repos>
    DAV svn
    SVNPath /var/svn/repository
    SVNAutoversioning on

    ModMimeUsePathInfo on
</Location>
3
DaveG

Apacheの mod_mime は、svn:mime-typeプロパティが設定されていない場合にコンテンツタイプを決定します。 Apache構成で有効にします。

LoadModule mime_module modules/mod_mime.so

拡張子が.htmlのファイルのMIMEタイプは、デフォルト構成ではtext/htmlです。 Apache2.4.10およびSubversion1.8.11でテスト済み。

1
holger