svn:mime-type
ファイルの.html
Subversionプロパティをtext/html
に設定すると、Apache httpdのSubversionモジュールを介してブラウザーでファイルを表示すると、ファイルが提供されることを認識しています。 Content-Type: text/html
ヘッダー。ブラウザが、プレーンテキストではなくHTMLとしてレンダリングできるようにします。
ただし、これを行う方法を探していますなしsvn:mime-type
プロパティを使用します。
プロパティを自動的に追加するようにsvnクライアントを構成できることは承知しています。すべてのユーザーがこれらの設定を持っていることを確認したくないので、これは私が望むものではありません。また、ユーザーにプロパティの設定を強制するために、プロパティが設定されていない場合にコミットを拒否するpre-commitフックを作成できることも認識しています-それにフォールバックする可能性がありますが、もっと少ないものを探しています押し付けがましい。
また、コミット後のフックを使用して、サーバー側でプロパティを自動的に追加できることも認識しています。私はそれをしたくありません(ユーザーはコミット後すぐに更新する必要があり、書くのは簡単ではありません)-私はより良い代替手段を探しています。おそらく、Apacheサーバーの書き換えルールに何かありますか?
簡単な答え-はい-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>
Apacheの mod_mime は、svn:mime-type
プロパティが設定されていない場合にコンテンツタイプを決定します。 Apache構成で有効にします。
LoadModule mime_module modules/mod_mime.so
拡張子が.html
のファイルのMIMEタイプは、デフォルト構成ではtext/html
です。 Apache2.4.10およびSubversion1.8.11でテスト済み。