Предпочтительный способ включить относительную ссылку на JavaScript во вложенной главной странице VS 2008
-
06-07-2019 - |
Вопрос
На нашей базовой мастер-странице есть что-то вроде следующего
<head runat="server">
<title></title>
<script type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/actions.js")%>"></script>
<script type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/jquery/jquery-1.2.6.min.js")%>"></script>
<asp:contentplaceholder id="cph_htmlhead" runat="server">
</asp:contentplaceholder>
</head>
Если эта мастер-страница является мастер-страницей для страницы ASPX, все работает хорошо.
Если эта мастер-страница является мастер-страницей для дочерней мастер-страницы, а затем новая ASPX-страница использует дочернюю мастер-страницу в качестве своей мастер-страницы, мы видим:
Ошибка сервера в приложении. Р>
Коллекция Controls не может быть изменена, потому что элемент управления содержит блоки кода (т.е. <% ...% >).
Каков предпочтительный способ включения глобальных ресурсов (Javascript / CSS) в базовую мастер-страницу с сохранением относительного пути в стиле тильды (~)?
Решение
Используйте серверный элемент управления ScriptManager:
<asp:ScriptManager ID="myScriptManager" runat="server">
<Scripts>
<asp:ScriptReference Path = "~/javascript/actions.js" />
<asp:ScriptReference Path = "~/javascript/jquery/jquery-1.2.6.min.js" />
</Scripts>
</asp:ScriptManager>
Другие советы
Вы пробовали:
<script type="text/javascript" src='<%= Page.ResolveClientUrl("~/javascript/actions.js") %>'></script>
Согласно ScottGu ,
Одним из советов, который можно использовать, является поддержка исправления относительного пути, предоставляемая head runat = " server " контроль. Вы можете использовать это на главных страницах, чтобы легко ссылаться на таблицу стилей .CSS, которая используется повторно во всем проекте (независимо от того, является ли проект корневым или вложенным приложением):
Функция исправления пути в элементе управления head затем берет относительный путь таблицы стилей .CSS и корректно выводит абсолютный путь к таблице стилей во время выполнения, независимо от того, является ли это веб-сайтом с корневой ссылкой или частью вложенного элемента. приложение. Р>