Firefox «интеллектуально» и молча исправляет неправильные ссылки на файлы в CSS и скриптах во время выполнения. Сводит меня с ума! - PullRequest
2 голосов
/ 18 апреля 2010

Ну, это действительно странная проблема, я действительно не нашел ничего по этому поводу в другом месте, поэтому я решил обратиться к ней здесь.

Скажем, у меня есть файл "image.jpg", и я случайно ссылаюсь на него в CSS следующим образом:

url(imag.jpg)

Обратите внимание на пропущенное «е». Теперь для меня Firefox настолько невероятно умен, что все равно найдет правильное изображение, но не выдаст предупреждение . Поэтому я предполагаю, что все в порядке.

Но позже, когда я тестирую страницу в любом другом браузере, внезапно изображение не отображается (и это правильно). Это потому, что Firefox посчитал хорошей идеей исправить мою ошибку, не сказав мне.

Это становится более критичным для сценариев. Firefox также автоматически исправит опечатку в ссылке <script src="">.

Я просто потратил впустую целый час, почесывая голову и пытаясь отладить функцию ajax в Webkit - оказывается, у меня просто была опечатка, в которую я включил файл.

С какой стати Firefox делает это, не сообщая, и где, черт возьми, я могу это отключить? Впервые это произошло где-то около FF 3.0 и все еще сохраняется в 3.6.3.

/ поблагодарить любого inpu;)

РЕДАКТИРОВАТЬ: Спасибо за ваши ответы до сих пор. Я загрузил демо

РЕДАКТИРОВАТЬ 2: Благодаря большой информации ниже, я обнаружил, что это был мой сервер с включенным модулем CheckSpelling (Apache). Решение: Добавить

CheckSpelling OFF

.htaccess и это исправляет. Еще раз спасибо всем.

PS. Мне жаль, что я обвинил тебя, Firefox. Ты все еще лучший!

Ответы [ 3 ]

5 голосов
/ 18 апреля 2010

Я не думаю, что это имеет какое-либо отношение к Firefox. Ваш скрипт также включается в IE, что заставляет меня думать, что ваш веб-сервер перенаправляет запрос в реальный файл, а не в Firefox. Какой веб-сервер вы используете? IIS

Когда я выбираю http://soapdesigned.com/firefox-test/scrip.js в IE, мне предлагается загрузить script.js , правильный файл.

Обновление: После изучения в Fiddler, когда я запрашиваю scrip.js, я получаю HTTP 301 (постоянно перемещено).

2 голосов
/ 18 апреля 2010

Это не Firefox, это что-то на вашем сервере:

~% curl -v -o/dev/null http://soapdesigned.com/firefox-test/scrip.js
* About to connect() to soapdesigned.com port 80 (#0)
*   Trying 82.165.116.124... connected
* Connected to soapdesigned.com (82.165.116.124) port 80 (#0)
> GET /firefox-test/scrip.js HTTP/1.1
> User-Agent: curl/7.19.5 (x86_64-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15
> Host: soapdesigned.com
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Sat, 17 Apr 2010 22:44:08 GMT
< Server: Apache
< Location: http://soapdesigned.com/firefox-test/script.js
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=iso-8859-1
< 
* Connection #0 to host soapdesigned.com left intact

* Closing connection #0

Ваш сервер, вероятно, работает mod_spelling , который обнаруживает неудавшиеся запросы к несуществующим файлам и пытается перенаправить на другие файлы с похожим написанием.

2 голосов
/ 18 апреля 2010

Я думаю, что вы видите mod_speling (или что-то подобное) в действии:

http://httpd.apache.org/docs/2.0/mod/mod_speling.html

Это модуль apache, предназначенный для исправления незначительных ошибок.

Запросы к документам иногда не могут обслуживаться основным сервером Apache, потому что запрос был написан с ошибкой или неправильно капитализирован. Этот модуль решает эту проблему, пытаясь найти соответствующий документ, даже после того, как все другие модули отказались. Он выполняет свою работу, сравнивая каждое имя документа в запрошенном каталоге с запрошенным именем документа без учета регистра и допуская до одной опечатки (вставка / пропуск / перенос символа или неправильный символ). Список строится со всеми именами документов, которые были сопоставлены с использованием этой стратегии.

...