#.net
#.net
Вопрос:
Я хочу включить файл javascript следующим образом
<script type="text/javascript" runat="server" src="~/file.js"></script>
Идея в том, что я хочу включить file.js через относительный путь вместо абсолютного пути, и я хочу .NET, чтобы определить соответствующий каталог (ie. это ./ или ../, или ../ .. / etc …).
Но когда я пробую приведенный выше код, я получаю ошибку компиляции.
Как мне правильно включить файл javascript?
Комментарии:
1. Вы используете MVC или ванильный ASP.Net ?
Ответ №1:
Вы можете попробовать это…
Razor:
<script type="text/javascript" src="@Url.Content("~/file.js")"></script>
Веб-формы:
<script type="text/javascript" src="<%=Page.ResolveUrl("~/file.js")%>"></script>
Комментарии:
1. я получаю ошибку синтаксического анализа с помощью метода webforms: Сообщение об ошибке анализатора: теги сервера не могут содержать <% … %> конструкты.
2. Извините, я случайно оставил runat=»server» в. К сведению, прошло много лет с тех пор, как я работал с WebForms.
3. как я получаю эту ошибку: CS0103: имя «URL» не существует в текущем контексте
4. Хорошо, попробуйте новый пример. Я не понимал, что URL-это специфичная вещь для MVC.
Ответ №2:
Помните, что путь-‘относительность’ наиболее важен для браузера. Пути должны быть относительно адреса СТРАНИЦЫ, на которую вы смотрите. Вот почему элементы управления и главные страницы, которые могут находиться не в тех же папках, что и страницы, которые их используют, идут на все, чтобы манипулировать путями ресурсов, которые они включают, чтобы они работали.
Итак, в вашем случае удалите часть runat= и если file.js находится в корне приложения, с которым вы должны быть готовы работать.
Комментарии:
1. но если я просто включу, в том числе из Default.aspx работает, но включение из подкаталога / Default.aspx не работает
Ответ №3:
Если вы используете MVC, вы можете использовать
<script type="text/javascript" src="@Url.Content("~/file.js")" />