JavaScript Bootstrap работает локально, но не при развертывании на сервере

Я скачал базовый пример загрузчика Twitter и настроил его. Я протестировал его локально (с сервером WAMP), и все работает отлично, как CSS, так и JScript.

Я загрузил файлы на свой веб-хостинг, и JScript просто не работает. Я заметил это, потому что выпадающие списки перестали работать.

Я искал и нашел других людей с такой же проблемой, но все они используют ruby, а я нет. Просто воспроизведите CSS+JScript, предоставляемый бутстрапом. Кроме того, они сказали, что решение состоит в том, чтобы сначала включить bootstrap.js, а затем jquery.js. Ну, я попробовал, и это не сработало, я даже включил не минимизированный .js, и все равно это не сработало.

Я использую один и тот же браузер (Chrome) для локального и удаленного тестирования. Я также пробовал разные хостинги, и проблема возникла на обоих.

Помощь очень ценится.


Другие подобные вопросы:


person dialex    schedule 27.08.2012    source источник


Ответы (10)


Проблема может заключаться в том, что вы загружаете boostrap.js перед jQuery. Локально ваш браузер может использовать кешированную копию Jquery, поэтому он работает там, но не на вашем активном сайте. Попробуйте исправить это, поменяв местами эти две строки в коде:

<script src="/code4pt/styles/js/bootstrap.js"></script>
<script src="/code4pt/styles/js/jquery.js"></script>
person Hoff    schedule 27.08.2012
comment
почему бы не прикрепить jquery к вашему бутстрапу, пока вы это делаете? - person d4rklit3; 27.08.2012

Я знаю, что это очень странно, но я думаю, что нашел решение. Раньше я использовал (прилагается) минимизированную версию jQuery 1.7.2. Теперь я изменил его, чтобы использовать не минифицированный jQuery 1.8.0. Это только начало работать... Еще я сделал, чтобы преобразовать кодировку всех файлов в UTF8 (я думаю, что это была настоящая проблема/решение)

person dialex    schedule 27.08.2012
comment
кодировка и разделитель строк - настоящие виновники, ваш ответ помог мне быстро исправить это. Я был совершенно расстроен, когда весь адаптивный макет пропал на мобильных устройствах после развертывания :-) Большое спасибо! - person Fahad; 20.03.2018
comment
как вы, ребята, меняете кодировку на UTF8, у меня похожая проблема. Я использую jquery: ^ 3.5.1 - person Amir; 31.10.2020

У меня такая же проблема. В IE сайт работал на локальном хосте, но не на другом сервере. Добавление следующего метатега исправило это.

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
person Shahed    schedule 01.05.2014
comment
куда положить? под каким узлом? - person Nayef; 02.09.2015

У меня была точно такая же проблема, поэтому я с облегчением нашел этот пост и другие подобные ему. Мое решение было аналогичным. Я рвал на себе волосы полдня, пробуя разные вещи. Выгуливал собаку. Выпил полдюжины бутылок пива. Спал на нем. Позавтракал. Перекопировал таблицы стилей вверху и js снизу с локального html на серверный php, а потом по какой-то неизвестной причине снова заработало. Единственные моменты, которые кажутся полезными для других, проходящих то же самое:

  • Попробуйте вернуться к рабочему сценарию - в моем случае index.html работал на сервере, но не index.php. Ключевым моментом было получить их точно такими же.
  • Попробуйте в разных браузерах на всякий случай, если происходит что-то странное.
  • Убедитесь, что вы продолжаете очищать кеш браузера (например, щелкните правой кнопкой мыши кнопку перезагрузки в Chrome и выберите «Очистить кеш и выполнить жесткую перезагрузку»).
  • Проверьте свои версии bootstrap css и js. Меняйте их вперед и назад в версии, пока не добьетесь успеха. Скорее всего, версия, поставляемая с загрузкой темы начальной загрузки, скорее всего, будет работать.
person Darrell    schedule 27.03.2016
comment
Продолжайте очищать кеш браузера - мне помогло +1 - person Zrethreal; 04.04.2021

У меня были похожие проблемы раньше. Функция вкладок отлично работала на моем HTML-сайте, но не работала при кодировании в теме Wordpress. Все исходные URL-адреса генерировались динамически с помощью Wordpress.

Вкладки, наконец, заработали, когда я добавил все ссылки JS (кроме Modernizr) в нижний колонтитул, а не в верхний колонтитул.

person Aaron Gray    schedule 13.01.2013

Назад к основам: если для параметра Debug установлено значение true на локальном компьютере и значение false в среде развертывания, как и должно быть, убедитесь, что ваши файлы .min.js не переопределяют настройки, которые вы внесли в неминифицированные версии файлов .js. (относится и к .css).

Вы также можете отключить отладку на локальном компьютере, и вы должны увидеть те же проблемы.

person Bluelake_BW    schedule 09.12.2015
comment
Это блестящая идея. К сожалению, в моем случае это не помогло :-( Но стоит попробовать другим. - person Christer Fernstrom; 22.02.2018

Поздно на вечеринку, но я узнал, что моя проблема заключалась в том, что Bootstrap.js не выдвигался во время развертывания.

person Chris Hammond    schedule 04.10.2018
comment
В моем случае мой удаленный jquery.min.js был 40 КБ, а локальный - 85 КБ. Dreamweaver не хотел перезаписывать его локальным, поэтому пришлось сначала удалить, тогда все было хорошо. Поэтому проверьте, все ли файлы .js имеют правильный размер (и, возможно, удалите их все и перезагрузите, чтобы убедиться) - person M61Vulcan; 25.04.2019

В дополнение к очень полезным предложениям @dialex и @Darrell, я добавлю, что если ничего из этого не работает, вы можете просмотреть любой код, на который вы можете ссылаться, т.е. через require ('page.php'); для дубликатов. Повторяющиеся ссылки .js, как правило, вызывают эти проблемы.

person MdE    schedule 08.04.2016

Я столкнулся с этим на сайте, который я создал и загрузил на Amazon S3. Работал нормально на моем локальном компьютере и даже на моем локальном сервере, но не работал при обслуживании с Amazon. Консоль в Firefox (но не в Chrome) показала, что не удалось загрузить bootstrap.min.css (и др.), потому что их тип MIME не был text/css.

Мне пришлось использовать консоль S3, чтобы принудительно изменить их типы на text/css, очистить кеши и перезагрузить. Вуаля!

person Eric Cloninger    schedule 27.09.2016

Я использую Codeigniter. Я решаю эти проблемы, изменяя свой base_url в config.php.

Предыдущий:

$config['base_url'] = 'http://localhost/public_html';

Изменения на:

$config['base_url'] = 'http://(my intranet server ip adress)/public_html';
person ELYAS AYALEW    schedule 09.03.2021