Таким образом, я запускаю этот 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 файла?
В сценарии пути указываются относительно отображаемой страницы
, чтобы упростить задачу, вы можете распечатать простой js, как это, и используя эту переменную во всех своих сценариях:
Решение, которое использовалось в StackOverflow примерно в феврале 2010 года:
<script type="text/javascript">
var imagePath = 'http://sstatic.net/so/img/';
</script>
Если вы посещали эту страницу примерно в 2010 году, вы могли бы просто взглянуть в источнике html StackOverflow вы можете найти этот задиристый однострочный [форматированный до 3 строк :)] в разделе
Хороший вопрос.
В файле CSS URL-адреса будут относиться к файлу CSS.
При написании свойств с использованием JavaScript URL-адреса всегда должны указываться относительно страницы (основного запрошенного ресурса).
Насколько мне известно, в JS нет встроенной функции тильды
. Обычным способом было бы определить переменную JavaScript, определяющую базовый путь:
<script type="text/javascript">
directory_root = "http://www.example.com/resources";
</script>
, и ссылаться на этот корень всякий раз, когда вы динамически назначаете URL-адреса.
Я использовал шаблон Пекки. Думаю, еще один шаблон.
<script src="<% = Url.Content("~/Site/Scripts/myjsfile.js") %>?root=<% = Page.ResolveUrl("~/Site/images") %>">
и проанализировал строку запроса в myjsfile.js.