Дилемма ASP.net MVC и jQueryUI

Я только что переместил проект в бета-версию фреймворка ASP.net MVC, и единственная проблема, с которой я столкнулся, - это jQuery и jQueryUI.

Вот сделка:

В Site.Master есть следующие ссылки на скрипты:

<script src = "../../Scripts/jquery-1.2.6.js" type = "text/javascript"></script>
<script src = "../../Scripts/jquery-ui.js" type = "text/javascript"></script>

И с их помощью accordian UI, который у меня есть в одном из представлений, работает отлично, за исключением одной проблемы: изображения из ThemeRoller не включены на страницу. Если я закомментирую ссылки jQuery, там будут изображения ThemeRoller. Все css находятся в Content folder, а все скрипты - в Scripts folder.

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

Что мне не хватает?

Обновлять

Я попробовал первый ответ безрезультатно, подробности читайте в комментарии. Еще раз спасибо тем, кто просматривает.

Второй подход тоже не работает. Я сбит с толку.

Еще одно обновление

Использование тегов Url.Content для сценариев действительно позволяет сценариям работать правильно. При использовании обычного тега для таблицы стилей все стили помещаются на страницу, ЗА ИСКЛЮЧЕНИЕМ всех тех, которые связаны с ThemeRoller.

Файл jquery-ui-themeroller.css находится в папке Content, и когда я проверяю элемент, присутствует CSS. Я подозреваю, что проблема заключается в сопоставлении этого файла css с папкой изображений для themeroller, которая также находится в папке Content. Ссылки на изображения в этом файле указаны как: background: url(images/foo.gif)

Нужно ли менять ссылки в этом файле?

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
6
0
1 905
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Если все ваши представления не находятся на одном уровне, вам нужно будет использовать

  • Используйте абсолютный путь, например /Scripts/jquery-1.2.6.js
  • Или, что еще лучше, разрешить виртуальный путь, такой как <% = Url.Content ("~ / Scripts / jquery-1.2.6.js")%>

Url.Content () http://jvance.com/media/2008/10/18/UrlContent5.media

Я попробовал вариант использования тега Url.Content, который изменил одну вещь: теперь, когда все раскомментировано, изображения отображаются, но jQueryUI не работает.

KevDog 18.10.2008 08:40
Ответ принят как подходящий

это помогает?

http://forums.asp.net/p/1334947/2690469.aspx

The reason for the inconstistency is very simple, though I admit it's not easy to figure out! When you have a <link> tag inside a <head runat = "server">, ASP.NET will process the <link> tag and detect URLs and resolve them relative to the application's root. When you have a <script> tag on the page (without runat = "server") then ASP.NET will leave it alone since it's just plain old HTML.

Using Url.Content() is the approach I would use to solve this since it'll get resolved relative to the app root, just like the <link> tag.

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

KevDog 18.10.2008 18:06

Оказывается, проблема заключалась в том, что загруженная тема с ThemeRoller не работает сразу после установки. Спасибо за указатель на объяснение.

KevDog 23.10.2008 22:13

Вам нужно изменить ссылки в jquery-ui-themeroller.css, чтобы они указывали на текущее местоположение изображений.

Например, вам нужно обновить путь к изображениям, которые ищет файл css.

background: url(images/foo.gif)

Удалите 'images /' из ваших путей, чтобы он выглядел так:

background: url(foo.gif)

поскольку и ваш CSS, и изображения находятся в папке содержимого.

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterClientScriptInclude(this.GetType(),"JQuery", ResolveUrl("~/js/jquery.min.js"));
        Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "JQueryUI", ResolveUrl("~/js/jquery-ui.custom.min.js"));

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