我有一个简单的 ASP.NET MVC 项目,需要将其移植到 ASP.NET Core。在视图(.cshtml)中,我发现了类似@Styles.Render("...")or的元素@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>
Run Code Online (Sandbox Code Playgroud)
我发现它位于基于.NET-Framework 的Microsoft.AspNet.Web.Optimization包中。
如何将其移植到.NET Core中?
你不能。该包适用于 ASP.NET,而不是 ASP.NET Core。但是,无论如何您都不需要它。这些静态数据的唯一目的是与 ASP.NET MVC 中的捆绑框架结合起来,以便可以引用正确的文件以及缓存清除查询字符串参数。
即使如此,它们也不是绝对必要的,因为包名称实际上是最终生成的文件名,因此@Scripts.Render("~/bundles/jquery")和之间唯一的功能区别<script src="~/bundles/jquery"></script>是前者会附加缓存清除参数。
在 ASP.NET Core 中,这一切都发生了变化。严格来说,ASP.NET Core 在静态资源方面是不干涉的。您可以在那里自由选择自己的策略。npmMicrosoft 确实提供了 LibMan 来帮助您,但最常见的是与webpack或 一起使用gulp。在这两种情况下,您都可以通过 config 设置“捆绑包”。对于 LibMan,有一个 libman.json。使用 时,您可以通过或npm进行更多手动操作,具体取决于您是否分别使用或。webpack.config.jsgulpfile.jswebpackgulp
其中任何一个的最终结果都是您的目录中会出现捆绑且缩小的 css/js 文件wwwroot/lib。然后,您只需使用普通的脚本标签引用它们即可:
<script src="~/lib/jquery/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
要添加缓存清除查询,您可以利用以下asp-append-version属性ScriptTagHelper:
<script src="~/lib/jquery/jquery.min.js" asp-append-version="true"></script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8023 次 |
| 最近记录: |