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

Apache рассматривает файлы с расширением «.var [.]» В их именах как карты типов.

Итак, сегодня на работе я столкнулся со странной проблемой. В приложении, которое я писал, был файл JavaScript с именем form.sales.var.js, помещенный в тот же каталог, что и другие файлы JS. Однако, когда браузер попытался загрузить файл JS, сервер вернул 500 Internal Server Error страница. Журнал Apache показал запись:

Syntax error in type map, no ':' in /var/www/...

- за которым следует остальной путь к файлу и его содержимое.

Я провел небольшое исследование в Google относительно этой проблемы и обнаружил, что это, вероятно, было вызвано именем файла, содержащим .var., в результате чего Apache рассматривает его как типографская карта. Поскольку это не так, возникает синтаксическая ошибка.

Мои вопросы сейчас:

  1. Почему .js файл рассматривается как карта типов, когда в документации говорится, что карты типов *.var файлы? Просто мой веб-сервер неправильно настроен, или другие могут проверить, выдают ли их веб-серверы те же ошибки с файлами с именем something.var.something?
  2. Почему нет документации по этой проблеме и почему о ней так редко сообщается, хотя такое поведение, похоже, существовало с Apache 1.3? Похоже, это будет более распространенная проблема.
  3. Обычно используются типовые карты? Есть ли какие-нибудь предсказуемые проблемы с их отключением в Apache?
  4. Как лучше всего решить эту проблему (кроме переименования файла и отказа от имен файлов, содержащих .var.)?

Это часть Apache httpd Согласование содержания. Просто удалите обработчик для type-map для <Directory> или <Location> ваших файлов JavaScript или удалите MultiViews для этих каталогов.