ASP.NET MVC Как я могу предотвратить загрузку jquery дважды? - PullRequest
0 голосов
/ 27 мая 2018

Я реализую полный календарь (см. fullcalendar.io ) в представлении .cshtml в приложении ASP.NET MVC.Я вставил весь код JavaScript в файл index.cshtml, но он не показывал календарь в браузере.Файлы, необходимые для полного календаря, также импортируются в файл index.cshtml.

Код

@{
    ViewData["Title"] = "Home Page";
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="@Url.Content("~/calendar-js/jquery.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/calendar-js/jquery-ui.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/calendar-js/moment.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/calendar-js/fullcalendar.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/calendar-js/fullcalendar.js")" type="text/javascript"></script>
    <link href="@Url.Content("~/calendar-css/fullcalendar.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/calendar-css/fullcalendar.min.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/calendar-css/fullcalendar.print.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/calendar-css/fullcalendar.print.min.css")" rel="stylesheet" type="text/css" />

Я получил

«Ошибка типа: $ (...). FullCalendar не является функцией»

ошибка в консоли браузера.

Я обнаружил, что это проблема с jQuery, и я видел на вкладке Network моего браузера, что jQuery загружается дважды.Сначала файл jQuery, на который я ссылался в моем файле .cshtml , и другой файл jQuery, который, по-видимому, необходим в файле _LayOut.cshtml:

<environment include="Development">
        <script src="~/lib/jquery/dist/jquery.js"></script>
        <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
        <script src="~/js/site.js" asp-append-version="true"></script>
    </environment>
    <environment exclude="Development">
        <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                asp-fallback-test="window.jQuery"
                crossorigin="anonymous"
                integrity="sha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js"
                asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
                asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
                crossorigin="anonymous"
                integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa">
        </script>
        <script src="~/js/site.min.js" asp-append-version="true"></script>
    </environment>

Я пытался:

  • для запуска index.cshtml без ссылки jQuery этого файла.Это только усугубило ситуацию, потому что в консоли браузера появились ошибки, похожие на jQuery.
  • Чтобы запустить файл index.cshtml со всеми ссылками jQuery, но я удалил ссылку jQuery в _LayOut.cshtmlфайл.Полный календарь показался, но странным образом.Итак, мой вывод заключается в том, что эти 2 ссылки jQuery конфликтуют друг с другом.Несмотря на то, что показался полный календарь, я не думаю, что это правильно делать так.
  • CDN ссылки вместо локальных файлов.Не получилось.

Как решить эту проблему конфликтующего импорта jQuery?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...