Возможно ли, чтобы модуль 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 для автоматического добавления свойства - это не то, что я хочу, так как я не хочу гарантировать, что все пользователи имеют эти параметры. Я также знаю, что мог бы создать ловушку перед фиксацией, которая отклонит фиксацию, если свойства не установлены, чтобы заставить пользователей устанавливать свойство - я мог бы вернуться к этому, но я ищу что-то меньшее навязчивый.

Я также знаю, что я мог бы использовать ловушку post-commit для автоматического добавления свойств на стороне сервера. Я бы предпочел не делать этого (поскольку пользователи затем должны обновляться сразу после их фиксации, а писать нетривиально) - я ищу лучшую альтернативу. Возможно, что-то с правилами перезаписи на сервере Apache?

2 ответа

Краткий ответ - да - включите ModMimeUsePathInfo, чтобы Apache отвечал за типы MIME.

Более длинный ответ - да, но вам нужно использовать относительно современную версию Subversion на вашем сервере Apache.

Обычно контент обслуживается модулем mod_dav_svn, который запрашивает хранилище Subversion, поэтому тип mime будет определяться модулем Subversion.

Исторически это можно было настроить только с помощью свойства svn: mime-type. Посмотрите эту ветку в списке рассылки Subversion User, чтобы узнать, как кто-то пытается выполнить нечто подобное.

Теперь, используя директиву ModMimeUsePathInfo, Apache должен выяснить, какой тип MIME указывать, используя mod_mime - для получения дополнительной информации см. Приложение C, WebDAV и Autoversioning книги Subversion.

Конкретно что-то вроде:

<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

Тип MIME файлов с расширением .html является text/html в конфигурации по умолчанию. Протестировано с Apache 2.4.10 и Subversion 1.8.11.

Другие вопросы по тегам