Как использовать лайтбокс под MVC

Я большой поклонник библиотеки Lightbox2 и раньше использовал ее только не в проекте MVC. В прошлом я помню, что Lightbox2 придирчиво относился к путям, в которых он размещал скрипты, CSS и изображения. Я помню, что нужно было поместить все в подкаталоги пути к странице, иначе это не сработало бы.

В приложении, отличном от MVC, этот подход был прекрасен, но теперь я работаю над приложением MVC, и URL-адрес страницы может не иметь ничего общего со структурой каталогов. Итак, ссылка на Lightbox2 в соответствии с инструкциями:

<script type = "text/javascript" src = "js/prototype.js"></script>
<script type = "text/javascript" src = "js/scriptaculous.js?load=effects,builder"></script>
<script type = "text/javascript" src = "js/lightbox.js"></script>

явно не работает.

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

Кто-нибудь добился успеха с Lightbox2 в среде MVC? Возможно, вы просто успешно развернули Lightbox2 в подкаталоге?

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
3 906
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

О каком фреймворке MVC мы здесь говорим? Хотя я не знаком с этой конкретной библиотекой лайтбоксов, я настоятельно рекомендую вам найти правильный способ ссылки на файлы javascript через абсолютный путь в корне вашего сайта:


<script type = "text/javascript" src = "/js/prototype.js">

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

Кроме того, размещение копий одних и тех же файлов javascript, разбросанных по всему сайту, - плохая идея. Помимо очевидной проблемы с беспорядком, браузерам придется загружать одни и те же файлы снова и снова, вместо того, чтобы читать их из кеша, потому что они находятся по разным URL-адресам.

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

Jason Whitehorn 20.10.2008 07:38

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

mmacaulay 20.10.2008 15:49
Ответ принят как подходящий

Я считаю, что Lightbox предполагает, что у вас есть следующая структура:

/images
    prevlabel.gif
    nextlabel.gif
    loading.gif
    closelabel.gif
/css
    lightbox.css
lightbox.js

Вы можете просто открыть lightbox.js и найти:

fileLoadingImage:        'images/loading.gif',     
fileBottomNavCloseImage: 'images/closelabel.gif',

И в lightbox.css найдите:

#prevLink:hover, #prevLink:visited:hover { background: url(../images/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(../images/nextlabel.gif) right 15% no-repeat; }

И делай с этим, что хочешь.

Спасибо, что решили это. Я изменил их на гифки, чтобы сделать их абсолютными, и это исправило их.

Jason Whitehorn 20.10.2008 07:37
<script src = "~/LightBox/js/jquery.js"></script>

<script src = "~/LightBox/js/jquery.lightbox-0.5.min.js"></script>

<a title = "Title here" class = "lightbox" href = "~/LightBox/images/lightbox-btn-close.gif">click</a>



<script type = "text/javascript">
    $(function () {
        $('a.lightbox').lightBox();//.lightBox(); // Select all links with lightbox class
    });
</script>

Не могли бы вы объяснить редактировать, почему этот код отвечает на вопрос? Только кодовые ответы - обескураженный, потому что они не учит решения.

Scimonster 18.02.2015 15:08

Другие вопросы по теме