簡體   English   中英

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

[英]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是可以放手的。 您可以在那里自由選擇自己的策略。 微軟確實提供利布曼來幫助你,但它是最常見的使用npmwebpackgulp 在這兩種情況下,都可以通過config設置“捆綁包”。 使用LibMan,有一個libman.json。 隨着npm ,你多一點做手工,通過任一webpack.config.jsgulpfile.js ,這取決於你使用webpackgulp分別。

這些最終的結果是,您將在wwwroot/lib目錄中得到捆綁並縮小的css / js文件。 然后,您只需使用普通腳本標簽引用它們即可:

<script src="~/lib/jquery/jquery.min.js"></script>

要添加緩存清除查詢,可以利用ScriptTagHelperasp-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM