Назад | Перейти на главную страницу

Возможно ли, чтобы модуль Subversion Apache обслуживал html-файлы с html-типом содержимого без использования свойства svn: mime-type?

Я знаю, что если вы установите 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.