Я знаю, что если вы установите svn:mime-type
Свойство Subversion на .html
файл в text/html
тогда при просмотре файла в браузере через модуль Subversion в Apache httpd он будет обслуживаться с Content-Type: text/html
заголовок, позволяющий браузеру отображать его как HTML, а не как обычный текст.
Однако я ищу способ сделать это без используя svn:mime-type
свойство.
Я знаю, что вы можете настроить свой svn-клиент для автоматического добавления свойства - это не то, что я хочу, так как я не хочу, чтобы все пользователи имели эти настройки. Я также знаю, что могу создать хук предварительной фиксации, который отклоняет фиксацию, если свойства не установлены, чтобы заставить пользователей установить свойство - я мог бы вернуться к этому, но я ищу что-то меньшее навязчивый.
Я также знаю, что могу использовать ловушку после фиксации для автоматического добавления свойств на стороне сервера. Я бы предпочел не делать этого (поскольку пользователи должны обновляться сразу после их фиксации, а это нетривиально написать) - я ищу лучшую альтернативу. Может быть, что-то с правилами перезаписи на сервере Apache?
Короткий ответ - да - включите ModMimeUsePathInfo, чтобы Apache отвечал за типы MIME.
Более длинный ответ - да, но вам нужно использовать относительно современную версию Subversion на вашем сервере Apache.
Обычно контент обслуживается модулем mod_dav_svn, который опрашивает репозиторий Subversion, поэтому mime-тип должен быть указан модулем Subversion.
Исторически это можно было настроить только с помощью свойства svn: mime-type. Видеть эта тема в списке рассылки пользователя Subversion в качестве примера попытки сделать что-то подобное.
Теперь, используя директиву ModMimeUsePathInfo, Apache должен выяснить, какой тип MIME указать с помощью mod_mime - см. Приложение C, WebDAV и автоматическая версия книги Subversion для получения дополнительной информации.
Конкретно что-то вроде:
<Location /repos>
DAV svn
SVNPath /var/svn/repository
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
Apache's mod_mime определит тип контента, если нет svn:mime-type
свойство установлено. Включите его в конфигурации Apache:
LoadModule mime_module modules/mod_mime.so
Тип файлов MIME с расширением .html
является text/html
в конфигурации по умолчанию. Протестировано с Apache 2.4.10 и Subversion 1.8.11.