Несмотря на то, что этот вопрос был задан и ответил ранее, в том числе на этом веб-сайте, мне не удается решить мою проблему.
Я использую Masterpages и файлы Javascript... и все теперь, как "сложные" masterpages получают относительные пути...
Ну, я использую png fix, называемый: unit Png Fix (неплохо быть честным... даже лучше, чем JQuery), и это исправление должно использовать небольшое изображение под названием clear.gif. Путь к файлу clear.gif хранится внутри переменной, которая находится в файле JavaScript.
Однако, поскольку я использую Masterpages, я не могу просто открыть JS файл и написать статический путь... подумал я.
Я пытался: удалить переменную из файла JS и объявить ее снаружи, но в блоке sabe Script. Вот так:
<!--[if lt IE 7]>
<script src="<%= ResolveClientUrl("~/masterpages/js/unitpngfix.js") %>" type="text/javascript">
var clear="<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>";
</script>
<![endif]-->
Я даже пытался объявить его в Главе сайта. (Я помещаю свои JS файлы в нижней части моей страницы, чтобы ускорить их).
К сожалению, мои решения не сработали... вот почему я задаю этот вопрос здесь.: (
Вы не можете объявить src и контент в одном элементе.
из определение элемента script на сайте W3C:
Если значение src имеет значение URI, пользовательские агенты должны игнорировать содержимое элемента и извлекать script через URI
Попробуйте выделить их:
<script type="text/javascript">
var clear="<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>";
</script>
<script src="<%= ResolveClientUrl("~/masterpages/js/unitpngfix.js") %>" type="text/javascript"></script>
A) вы можете объявить как атрибут src для ресурса Javascript, так и информацию в блоке. Вам нужно будет сделать объявление в своем собственном блоке до блока src
B) То, как я выполняю передачу URL-адресов, сгенерированных кодом, в Javascript, находится в моем представлении/главной странице. У меня есть блок script, который объявляет массив url, прикрепленный к окну, таким образом, там нет нечетных конфликтов дорога с другими сценариями:
<script type="text/javascript">
Window.url = {
clearImage: '<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>',
otherUrl: '<%=ResolveClientUrl("~/other/file/...")%>'
};
</script>
то в ваших реальных файлах script вы можете получить его через
var img = window.url.clearImage;
Он привязывает script к этому конкретному виду, но я не вижу в этом ничего страшного.