[英]Trying to install microsoft.aspnet.web.optimization in ASP.NET MVC project getting error
[英]Use "Scripts" and "Styles" in ASP.NET Core which originates from Microsoft.AspNet.Web.Optimization (.net-framework)
我有一個簡單的 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>
我發現它位於 package Microsoft.AspNet.Web.Optimization based on .NET-Framework中。
如何將其移植到.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是可以放手的。 您可以在那里自由選擇自己的策略。 微軟確實提供利布曼來幫助你,但它是最常見的使用npm
用webpack
或gulp
。 在這兩種情況下,都可以通過config設置“捆綁包”。 使用LibMan,有一個libman.json。 隨着npm
,你多一點做手工,通過任一webpack.config.js
或gulpfile.js
,這取決於你使用webpack
或gulp
分別。
這些最終的結果是,您將在wwwroot/lib
目錄中得到捆綁並縮小的css / js文件。 然后,您只需使用普通腳本標簽引用它們即可:
<script src="~/lib/jquery/jquery.min.js"></script>
要添加緩存清除查詢,可以利用ScriptTagHelper
的asp-append-version
屬性:
<script src="~/lib/jquery/jquery.min.js" asp-append-version="true"></script>
在 .Net 核心中,可以添加一個名為bundleconfig.json
的文件,如下所示:
{
"outputFileName": "wwwroot/bundles/lib/jqueryui.min.js",
"inputFiles": [
"wwwroot/lib/jqueryui/jquery-ui.js"
],
"minify": {
"enabled": true,
"renameLocals": true
},
"sourceMap": false
}
在此文件中,還可以指定是否縮小和添加源 map。 現在,您可以像這樣添加捆綁包:
<bundle name="wwwroot/bundles/lib/jqueryui.min.js" />
此外,您可以像這樣在 head 元素內創建部分:
<head>
//other scripts and styles here
@RenderSection("scriptslibrary", required: false)
@RenderSection("cssLibrary", required: false)
</head>
在您的 individual.cshtml 頁面中,您可以引用該部分並添加 css 或 js。
好吧,在2019年我們不再使用這些東西了。 如果我告訴您,您應該使用webpack或更舊的-gulp或grunt進行縮小和組合?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.