У меня есть эта очень простая страница в корне моего приложения. Не удалось загрузить jQuery. Однако, если я удаляю ~/ из пути, загружаются jQuery и срабатывает предупреждение. В чем проблема?
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="~/Scripts/jquery-2.0.3.js"></script>
<script>
$(document).ready(function () {
alert('hello');
});
</script>
</head>
<body>
</body>
</html>
Следующая ссылка вам хорошо объяснит формат пути на странице aspx:
Изменение строки кода, как показано ниже, поможет вам, поскольку она берет ссылку с корня вашего сайта.
<script src='/Scripts/jquery-2.0.3.js'></script>
См. Ссылку выше:
Вы можете использовать оператор ~ в любом свойстве, связанном с трассировкой, в элементах управления сервером. Оператор ~ распознается только для серверных элементов управления и кода сервера. Вы не можете использовать оператор ~ для элементов клиента.
Сначала проверьте правильность пути "~". Похоже, вы путаете директиву на стороне сервера с клиентской стороной.
<script src='<%= Page.ResolveUrl("~/Scripts/jquery-2.0.3.js") %>'></script>
И тогда я бы рекомендовал переместить блок document.ready script на "чуть выше" тега закрывающего тела.
Стоит упомянуть, что в MVC 4 Razor 2 и ASP.Net Web Pages 2 функция "тильда слэш" должна работать нормально.
например <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
Вы найдете это в стандартных _Layout.cshtml or vbhtml
(_Layout.cshtml or vbhtml
), когда
New Web Site → ASP.Net Web Site (Razor 2)
илиProject → C#/VB → Web → ASP.Net MVC 4 Web Application → Razor Engine
: РЭС
Лучшие функции веб-страниц ASP.NET 2
Теперь вы можете включить оператор ~ в разметку для ссылки на корень сайта без использования функции Href. (То есть синтаксический анализатор Razor теперь может найти и разрешить оператор ~, не требуя явного вызова метода для Href.) Метод Href все еще работает, поэтому это не является нарушением.
Например, если раньше у вас была такая разметка:
<a href="@Href("~/Default.cshtml")">Home</a>
Теперь вы можете использовать разметку следующим образом:
<a href="~/Default.cshtml">Home</a>
попробуйте простую вещь
<head runat="server">
<script src="~/Scripts/jquery-2.0.3.js"></script>
</head>
когда вы делаете head runtat = 'server', тогда вы ~/должны работать нормально
: D