【问题标题】:Razor Core installing jquery.unobtrusive.ajax missing js filesRazor Core 安装 jquery.unobtrusive.ajax 缺少 js 文件
【发布时间】:2019-11-22 12:39:18
【问题描述】:

我知道我一定遗漏了一些非常明显的东西,但是 js 文件在哪里? 我通过 nuget 安装包,但是当我检查 js 文件以将它们包含在我的页面中时,我无法在任何地方找到它们。

我该怎么办?

【问题讨论】:

    标签: c# razor .net-core nuget


    【解决方案1】:

    多年来,尽管 NuGet 已经失宠,但获取 Web 前端资源(html、css、js)。我预计这主要是由于缺乏灵活性(使用包的开发人员无法决定文件的去向,包作者可以)。我感觉到大量 ASP.NET 开发人员开始使用非 .NET 开发人员用于这些文件的相同工具,主要是 npm。您可以通过 ASP.NET Core 的 angular 和 react 模板看到这一点,默认情况下使用 npm。 webapp 和 mvc 模板现在只是在他们的模板中发布了一些版本的 bootstrap 和 jquery,没有工具支持来更新它们,只是评论说:

    /* 请参阅https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 的文档 有关配置此项目以捆绑和缩小静态 Web 资产的详细信息。 */

    由于使用 npm 的生态系统并非易事(不是说难,只是非易事),ASP.NET 团队创建了一个简单的库管理器,名为 LibMan。

    所以,我建议要么使用 LibMan 来获取 jquery 和任何其他你想要的前端资源,或者尽可能深入 npm/webpack 兔子洞,你可以让它变得像你一样简单或复杂喜欢取决于你想要什么功能。或者只是从 jquery 的网站下载文件并将其复制到您的存储库中。

    NuGet 包对您不起作用的原因是因为该包只包含一个content 文件夹,但是migrating from packages.config to packagereference 上的 NuGet 文档特别指出了"content" assets are no longer available。包作者可以使用 contentFiles 使其包与使用 PackageReference 的项目兼容,但包使用者对此无能为力。

    【讨论】:

    • 补充你的答案,因为这是针对核心的,因为 asp.net core 2.0 已经完全放弃了对内容文件的支持,并且引入了更复杂的方法,包括必须包含文件作为嵌入式资源并添加额外的文件提供程序来为它们提供服务,因为静态文件不能直接从项目中作为服务器,因此使用 nuget 打包静态资源变得更加不受欢迎。
    猜你喜欢
    • 2020-05-25
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    相关资源
    最近更新 更多