Записи с меткой "trick"
Итак, небольшой туториал на тему ASP .NET.
Там есть master-page. Вполне удобные штуки. Есть соблазн напихать туда всякого, например:
<script type="text/javascript" src="../js/jQuery.js"></script>
Кажется, круто — теперь у меня на всех страницах будет jQuery. Как бы не так. Фишка в том, что относительные пути будут считаться не от master-page, а от content page, которая использует этот мастер. И это большая жопа, на самом деле. Достаточно странице быть не на том же уровне в иерархии каталогов и у нас все скрипты отваливаются.
Замечу, что это касается только скриптов. В остальных случаях (картинки, цсс) работает волшебная тильда. «~» — это путь к головному каталогу приложения.
- Решение для тех, у кого сайт всегда в корне домена:
<script type="text/javascript" src="/js/jQuery.js"></script>
- Решение для нормальных людей:
public static class Extensions
{
public static void RegisterScript(this Control page, string scriptFileName)
{
RegisterScript(page, scriptFileName, 0);
}
public static void RegisterScript(this Control page, string scriptFileName, int index)
{
var tag = new HtmlGenericControl("script");
tag.Attributes.Add("type", "text/javascript");
tag.Attributes.Add("src", page.ResolveUrl(scriptFileName));
page.Page.Header.Controls.AddAt(index, tag);
}
}
Указание индекса нужно для разруливания зависимостей и вставки скриптов в самое начало элемента head.
Нашёл здесь