在ASP.NET Core中使用源自Microsoft.AspNet.Web.Optimization(.net-framework)的“脚本”和“样式”

时间:2019-06-28 12:01:57

标签: c# asp.net-core

我有一个简单的ASP.NET MVC项目,需要将其移植到ASP.NET Core。在视图(.cshtml)中,我发现了诸如@Styles.Render("...")@Scripts.Render("...")之类的元素:

<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        <title>@ViewBag.Title</title>
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/jquery")
        <script src="~/Scripts/script1.js"></script>
    </head>
</html>

我发现它位于基于 .NET-Framework 的程序包 Microsoft.AspNet.Web.Optimization 中。

如何将其移植到 .NET Core

2 个答案:

答案 0 :(得分:1)

不能。该软件包用于ASP.NET,而不是ASP.NET Core。但是,您仍然不需要它。这些静态信息的唯一一点是要与ASP.NET MVC中的捆绑框架配合使用,以便将正确的文件与缓存消除查询字符串参数一起进行引用。

即使那样,由于捆绑名称​​实际上是,实际上并不一定需要它们,因此@Scripts.Render("~/bundles/jquery")和{{1}之间唯一的功能区别是}是前者会附加缓存无效化参数。

在ASP.NET Core中,所有这些都已更改。严格来说,当涉及到静态资源时,ASP.NET Core是可以放手的。您可以在那里自由选择自己的策略。 Microsoft确实提供了LibMan来帮助您,但最常见的是将<script src="~/bundles/jquery"></script>npmwebpack一起使用。在这两种情况下,都可以通过config设置“捆绑包”。使用LibMan,有一个libman.json。使用gulp,您可以分别通过npmwebpack.config.js通过gulpfile.jswebpack手动完成操作。< / p>

以上任何一项的最终结果都是,您最终会在gulp目录中获得捆绑并缩小的css / js文件。然后,您只需使用普通脚本标签引用它们即可:

wwwroot/lib

要添加缓存清除查询,可以使用<script src="~/lib/jquery/jquery.min.js"></script> 的{​​{1}}属性:

asp-append-version

答案 1 :(得分:-1)

好吧,在2019年,我们将不再使用这些东西。如果我告诉您,您应该使用webpack或更旧的-gulp或grunt进行缩小和组合?