Предпочтительный способ включить относительную ссылку на JavaScript во вложенной главной странице VS 2008

StackOverflow https://stackoverflow.com/questions/183859

Вопрос

На нашей базовой мастер-странице есть что-то вроде следующего

  <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 и корректно выводит абсолютный путь к таблице стилей во время выполнения, независимо от того, является ли это веб-сайтом с корневой ссылкой или частью вложенного элемента. приложение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top