【问题标题】:Cannot import libraries from Node_Modules to ASP.NET CORE APP无法将库从 Node_Modules 导入 ASP.NET CORE APP
【发布时间】:2021-03-26 16:03:36
【问题描述】:

我正在学习 Pluralsight 的 Scott Allen - ASP.Net Core Fundamental 课程,并尝试将 Node_Modules 的外部库添加到我的项目中。

这是项目的结构:

以及我如何将数据表库包含到我的项目中(添加到 Pages/Shared/_Layout.cshtml)

但是当应用运行时,却找不到这些库:

问题:

  1. 这种方式有什么问题?
  2. 你们能推荐一些将外部库导入 ASP.NET CORE 应用的有效方法吗?

我使用的是 .NET 5

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

【问题讨论】:

  • 您不会将node_modules 的内容直接提供给网站访问者。相反,您的应用程序的 构建过程 将运行 Gulp、WebPack、Uglify、Rollup 等工具,这些工具会生成紧凑(缩小)的 JS,这些 JS 将在您的 /scripts 或 /dist 文件夹中提供服务。 (当然,将 npm 构建与 MSBuild 集成可能会很复杂)。
  • JavaScript 开发者生态系统的问题在于它的发展速度非常快——我在 2-3 年前学到的几乎所有东西现在都无关紧要了(例如,我在 2015 年就知道 AngularJS,但所有这些知识都已经过时了当 Angular2 出现时;我认为我在 2017 年所知道的关于 Grunt 和 Babel 的一切现在都没有实际意义——不幸的是,要跟上它还有很多工作要做)
  • 是啊,技术变化太快了,每天都要不断学习更新,逃不掉

标签: asp.net asp.net-mvc asp.net-core .net-5


【解决方案1】:

请注意,我们存储静态文件的默认目录是{content root}/wwwroot,您可以将这些数据表插件相关的js&css文件移动到web根目录。

有关在 ASP.NET Core 中提供静态文件的更多信息,请查看此文档:

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

【讨论】:

  • 谢谢韩飞,我从你的文档中解决了我的问题。
【解决方案2】:

从飞寒提供的文件中,我解决了我的问题。我需要添加一些配置以将“node_modules”作为PhysicalFileProvider 包含在 Startup.cs 文件中,如下所示:

然后更新脚本/链接标签中的src 和href 属性:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多