我有一个简单的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 ?
答案 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>
与npm
或webpack
一起使用。在这两种情况下,都可以通过config设置“捆绑包”。使用LibMan,有一个libman.json。使用gulp
,您可以分别通过npm
或webpack.config.js
通过gulpfile.js
或webpack
手动完成操作。< / p>
以上任何一项的最终结果都是,您最终会在gulp
目录中获得捆绑并缩小的css / js文件。然后,您只需使用普通脚本标签引用它们即可:
wwwroot/lib
要添加缓存清除查询,可以使用<script src="~/lib/jquery/jquery.min.js"></script>
的{{1}}属性:
asp-append-version
答案 1 :(得分:-1)
好吧,在2019年,我们将不再使用这些东西。如果我告诉您,您应该使用webpack或更旧的-gulp或grunt进行缩小和组合?