5

У меня есть небольшой набор файлов и папок в каталоге на моем компьютере, которые вызывают проблемы. Когда я загружаю их на свой веб-хост (Dreamhost) через SFTP (используя Transmit на OSX, графический интерфейс), большинство файлов и папок передаются в соответствии с ожиданиями. Но некоторые из них конвертируются в верхний регистр на веб-хостинге. Пример: slider.js становится SLIDER.JS

права доступа
644 slider.js на моей локальной машине
644 SLIDER.JS на веб-хостинга

Я не уверен, с чего начать при отладке этой проблемы, поэтому, если требуется дополнительная информация, пожалуйста, спросите.

Обновление 30.11.11 5 вечера EST
- Я смог решить эту проблему, просто переименовав файл slider.js в slider2.js, а затем обратно в slider.js. Мне все еще интересно выяснить, что стало причиной этой проблемы.
- Использование sftp в командной строке перенесло проблемные файлы без прописных букв.
- У меня MAC под управлением OSX 10.7.2. Не знаю слишком много подробностей о файловой системе, но информация доступна в [обзоре Ars Technica OSX 10.7] [1].

В ходе моего дальнейшего расследования я обнаружил, что ftp распознает команду case . Подробности следуют:

Переключение отображения имени файла на удаленном компьютере во время выполнения команд mget. Когда регистр включен (по умолчанию выключен), имена файлов на удаленном компьютере со всеми буквами в верхнем регистре записываются в локальном каталоге, а буквы отображаются в нижнем регистре.

Может ли быть так, что [Transmit ftp app] [1] неправильно использует эту команду? Это предположение.

1 ответ1

1

Я предполагаю, что ваша файловая система - HFS+ (если вы используете Transmit на OSX). HFS+ имеет 2 варианта, один с учетом регистра, а другой без учета регистра (https://apple.stackexchange.com/questions/71357/how-to-check-if-my-hd-is-case-sensitive-or -не) Однако оба варианта сохраняют регистр (http://en.wikipedia.org/wiki/Case_preservation). Вариант по умолчанию HFS+ не чувствителен к регистру. Вы можете изменить это, но это может сломать некоторые приложения, поэтому я не рекомендую это.

В вашей ситуации это означает, что файл создается как «SLIDER.JS» в вашей файловой системе. Вы можете открыть его как «slider.js», «Slider.js» и любые другие варианты его кейса. Однако, когда вы отправляете его с помощью своего приложения, оно, скорее всего, использует его каноническую версию (с учетом регистра).

Как вы упомянули, переименование его (я полагаю из Finder) в «slider2.js» и обратно в «slider.js» гарантирует, что сохраненный регистр теперь будет все в нижнем регистре.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .