Не удается импортировать библиотеки из Node_Modules в приложение ASP.NET CORE.

Я изучаю курс Scott Allen - ASP.Net Core Fundamental от Pluralsight и пытаюсь добавить в свой проект внешнюю библиотеку из Node_Modules.

Вот структура проекта:

введите здесь описание изображения

И как я включил библиотеку данных в свой проект (добавляя в Pages/Shared/_Layout.cshtml) введите здесь описание изображения

Но когда приложение запущено, оно не может найти эти библиотеки: введите здесь описание изображения

Вопросы:

  1. Что не так с этим способом?
  2. Ребята, можете ли вы предложить несколько эффективных способов импорта внешних библиотек в приложение ASP.NET CORE?

Я использую .NET 5

<PropertyGroup>
   <TargetFramework>net5.0</TargetFramework>
</PropertyGroup>

person every Bit    schedule 16.12.2020    source источник
comment
Вы не предоставляете содержимое node_modules непосредственно посетителям веб-сайта. Вместо этого процесс сборки вашего приложения будет запускать такие инструменты, как Gulp, WebPack, Uglify, Rollup и т. д., которые создают компактный (минимизированный) JS, который будет обслуживаться в вашей папке /scripts или /dist. (Конечно, интеграция сборки npm с MSBuild может быть сложной).   -  person Dai    schedule 16.12.2020
comment
Проблема с экосистемой разработчиков JavaScript заключается в том, что она невероятно быстро развивается — почти все, чему я научился даже 2-3 года назад, сейчас неактуально (например, я знал AngularJS в 2015 году, но все эти знания устарели, когда вышел Angular2; и все, что я думал, что я знал о Grunt и Babel в 2017 году, сейчас это спорно — к сожалению, много работы, чтобы не отставать)   -  person Dai    schedule 16.12.2020
comment
Да, технологии меняются так быстро, нужно учиться и обновляться каждый день, и от этого никуда не деться.   -  person every Bit    schedule 17.12.2020


Ответы (2)


Обратите внимание, что каталог по умолчанию, в котором мы храним статические файлы, — {content root}/wwwroot, вы можете переместить эти файлы js и css, связанные с плагином datatables, в корневой веб-каталог.

Дополнительные сведения об обслуживании статических файлов в ASP.NET Core см. в этом документе:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0

person Fei Han    schedule 16.12.2020
comment
Спасибо, Фей Хан, я решил свою проблему с помощью вашего документа. - person every Bit; 17.12.2020

Из документа, предоставленного Фей Хань, я решил свою проблему. Мне нужно добавить некоторую конфигурацию, чтобы включить node_modules как PhysicalFileProvider в файле Startup.cs, как показано ниже: введите здесь описание изображения

а затем обновите атрибуты src и href в теге script/link:

<script src="~/StaticFiles/datatables.net/js/jquery.dataTables.js"></script>
<link href="~/StaticFiles/datatables.net-bs4/css/dataTables.bootstrap4.css" rel="stylesheet"/>
person every Bit    schedule 16.12.2020