Возможно ли, чтобы модуль 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.