2015-07-24 2 views
0

У меня есть сайт ASP.NET MVC 4.0, который использует jQuery 1.11.1. У меня была проблема, когда некоторые из javascript в браузере конечных пользователей (IE) не работали. По какой-то причине у них была версия 1.7.x jQuery. Я давно кодирую, но я относительно новичок в области веб-разработки.jQuery зависимость от asp.net mvc site

Почему браузер не загружает мою копию jQuery с сервера? Есть ли способ заставить браузер получить мою версию?

Спасибо!

+0

Поскольку вы упоминаете IE конкретно, знаете ли вы, работает ли он в Chrome или Firefox? – JamieD77

+0

Я не знаю, работала ли она в других браузерах. Я пытаюсь сыграть в догоняй от инцидента 2 месяца назад. Значит, вы знаете, как это происходит. –

+0

просто убедитесь, что вы удалите старые файлы jquery, которые могут быть оставлены после обновления или обновления пакета. связывание обычно использует подстановочные знаки, такие как '' ~/Scripts/jquery- {version} .js ", которые будут захватывать все версии в каталоге. – JamieD77

ответ

1

Если клиент обычно загружает ваш сайт (вызывая конечную точку на вашем сервере), то нет возможности загрузить любую версию jquery, отличную от той, которую вы включили в тег сценария на своей веб-странице.

Если вы делаете что-то необычное, как предоставление виджета, который ваш пользователь вкладывает в страницу, то действительно, в зависимости от порядка загрузки сценариев браузер может завершиться другой версией jquery.

Если вы делаете последнее, есть методы, которые вы можете использовать для получения определенной версии jquery для вашего кода. Смотрите здесь для начала:

Include a specific version of JQuery and a plugin without conflicting with the page's JavaScript library?

Основываясь на комментариях ниже, вы можете также иметь другие библиотеки в вашем приложении, также загружать JQuery. В переменной $ будет загружена последняя версия jquery. Я бы подумал, что каждый браузер будет загружать их в том же порядке, но, возможно, в старых экземплярах IE происходит по-другому (или, возможно, в вашем приложении есть пути, которые загружают вещи в другом порядке).

Если это правда, вам придется использовать один из методов выше. Я также посмотрю, можете ли вы заставить кендо не брать $.

+0

Я определенно не занимаюсь виджетами. Я загружаю jquery через asp.net mvc в файле bundle.config, когда начинается сайт. Оптимизация включена, поэтому я полагаюсь на asp.net для объединения и минимизации всех моих скриптов. –

+0

Тогда, если вы обслуживаете одну и ту же версию jquery для всех, если, возможно, у вас есть несколько приложений, обслуживаемых из вашего домена, и вы обслуживаете несколько версий jquery с одного и того же URL-адреса. Одно приложение 1,11, а другое 1,7. Возможно, у вас может быть проблема с кешированием. –

+0

Как это работает, если я также ссылаюсь на элементы управления Telerik Kendo UI? Похоже, что они распространяют свою собственную версию jQuery со своим программным обеспечением. Я не ссылаюсь на свою версию, когда я регистрирую пакеты, только файлы Kendo. *. Js. –

Смежные вопросы