Nano Hash - криптовалюты, майнинг, программирование

jQuery Mobile — Относительные ссылки — ошибка базового тега

В моем приложении я использую базовый тег <base href="http://localhost/app/" />, а ссылки используют относительный путь, например: <a href="news/page-1">some link</a>.

Первая страница загружается как шарм, но следующие запросы пытаются загрузить неправильные URL-адреса, проверенные firebug.

Пример:

База: http://localhost/app/

  • ссылка 1: новости
  • ссылка 2: о

по первому запросу по ссылке 1 получить правильный URL, http://localhost/app/news.

но при следующем запросе, если я нажму на ссылку 2, jquery mobile попытается загрузить следующий URL-адрес: http://localhost/app/news/about

как бороться с этой проблемой?

использовать абсолютные URL-адреса не вариант.

Благодарю.

24.10.2011

Ответы:


1

Это похоже на ошибку.

И здесь может быть исправление для этого.

Github — Исправление ошибки 613 — Jquery Mobile игнорирует исходный тег base

24.10.2011

2

Мне удалось исправить относительные ссылки с помощью самого jQuery, поместив этот скрипт внизу каждой страницы:

<script type="text/javascript"><!--
 var base = $( 'base' ).attr( 'href' );
 if( base ) {
  // Fix a tags with relative href
  $( 'a[href]' ).filter( function() {
   return ! /^(\w+:|\/)/.test($(this).attr('href'));
  }).each( function() {
   $(this).attr( 'href' , base + $(this).attr( 'href' ) );
  });
 }
//--></script>

В основном он делает следующее:

  • Проверьте, есть ли базовый тег, и в этом случае:
  • Выберите каждый тег «a», имеющий атрибут «href»
  • Отфильтруйте теги, href которых является абсолютным URL-адресом (начинающимся с «схемы:» или «/»).
  • Добавьте базовый тег к href, сделав его абсолютным.

Это сработало очень хорошо для меня.

Обратите внимание, что он работает только с базовыми ссылками, заканчивающимися косой чертой (например, 'http://localhost/app/'). В противном случае необходимо будет выполнить дополнительную обрезку базовой переменной.

Я все еще пытаюсь понять, как сделать то же самое с источниками изображений. Попытка использовать тот же метод не удалась, поскольку кажется, что URL-адреса img src неправильно преобразуются в абсолютные, прежде чем я смогу исправить их с помощью jQuery. Если кто найдет подвох, дайте знать. Между тем, я буду использовать абсолютные URL-адреса для изображений...

03.03.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..