Относительные пути в JavaScript во внешнем файле

Таким образом, я запускаю этот JavaScript, и все хорошо работает, кроме путей к фоновому изображению. Это работает над моим локальным ASP.NET среда Dev, но это НЕ работает при развертывании на сервере в виртуальном каталоге.

Это находится во внешнем .js файле, структура папок

Site/Content/style.css
Site/Scripts/myjsfile.js
Site/Images/filters_expand.jpg
Site/Images/filters_colapse.jpg

тогда это - то, откуда js файл включен

Site/Views/ProductList/Index.aspx

$("#toggle").click(function() {
    if (left.width() > 0) {
        AnimateNav(left, right, 0);
        $(this).css("background", "url('../Images/filters_expand.jpg')");
    }
    else {
        AnimateNav(left, right, 170);
        $(this).css("background", "url('../Images/filters_collapse.jpg')");
    }
});

Я попытался использовать '/Images/filters_collapse.jpg' и это не работает также; однако, это, кажется, работает над сервером, если я использую '../../Images/filters_collapse.jpg'.

В основном я хочу, имеют ту же функциональность как ASP.NET tilda- ~.

обновление

Пути во внешних .js файлах относительно Страницы, они включены в, или фактическое местоположение .js файла?

79
задан Nate 2 February 2010 в 23:04
поделиться

3 ответа

Пути к файлам JavaScript

В сценарии пути указываются относительно отображаемой страницы

, чтобы упростить задачу, вы можете распечатать простой js, как это, и используя эту переменную во всех своих сценариях:

Решение, которое использовалось в StackOverflow примерно в феврале 2010 года:

<script type="text/javascript">
   var imagePath = 'http://sstatic.net/so/img/';
</script>

Если вы посещали эту страницу примерно в 2010 году, вы могли бы просто взглянуть в источнике html StackOverflow вы можете найти этот задиристый однострочный [форматированный до 3 строк :)] в разделе

131
ответ дан 24 November 2019 в 10:05
поделиться

Хороший вопрос.

  • В файле CSS URL-адреса будут относиться к файлу CSS.

  • При написании свойств с использованием JavaScript URL-адреса всегда должны указываться относительно страницы (основного запрошенного ресурса).

Насколько мне известно, в JS нет встроенной функции тильды . Обычным способом было бы определить переменную JavaScript, определяющую базовый путь:

<script type="text/javascript">

  directory_root = "http://www.example.com/resources";

</script> 

, и ссылаться на этот корень всякий раз, когда вы динамически назначаете URL-адреса.

13
ответ дан 24 November 2019 в 10:05
поделиться

Я использовал шаблон Пекки. Думаю, еще один шаблон.

<script src="<% = Url.Content("~/Site/Scripts/myjsfile.js") %>?root=<% = Page.ResolveUrl("~/Site/images") %>">

и проанализировал строку запроса в myjsfile.js.

Плагины | Плагины jQuery

4
ответ дан 24 November 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: