2017-11-03 120 views
0

從MVC-pre-Core項目遷移到Core 2版本我很震驚地發現@Scripts & @Styles被刪除。我曾依靠能夠使用@Scripts.Render("~/bundles/myApp")作爲快捷方式,在任何需要它們的頁面上導入六個文件。現在我必須拼出每個頁面上需要它們的所有文件?需要替換MVC的@ Scripts.Render方法

任何方式來複制行爲。已經看過Gulp,但似乎更像是專門用於部署的處理器。

+0

re anon downvotes ...讓我看看遷移文檔中的更新流程記錄以及AA的過程嗎? – justSteve

回答

1

Scripts.RenderStyles.Render方法除了向生成的HTML添加一個簡單的標記之外實際上不會執行任何操作。你談論的內容 - 在一次調用中彙集了一堆腳本/樣式 - 是MVC提供的捆綁。在ASP.NET Core中,創建這些包的方法已經改變了;就這些。

現在,你有bundleconfig.json,而不是BundleConfig.cs。您不必調用Scripts.Render來包含該包,而是直接引用捆綁的腳本。同樣的你的風格。

缺省情況下,存在用於每個site.jssite.css被「捆綁」(和精縮)插入分別site.min.jssite.min.css,單束。所以,你只是做:

<environment names="Staging,Production"> 
    <script src="~/js/site.min.js" asp-append-version="true"></script> 
</environment> 

environment標籤簡單地確定何時該HTML將被包含在輸出。在這裏,只有當環境是舞臺或製作時。腳本標籤是對「捆綁」的一個硬引用。這是功能等同於你會喜歡的東西取得的成就:

@Scripts.Render("~/bundles/site") 

其中,本身,只會有呈現以下腳本標籤:

<script src="~/bundles/site?v=abc123"></script> 

換句話說,你不需要Scripts.RenderStyles.Render方法,因爲它們實際上很沒用。即使在以前的MVC版本中,您也可以避免使用它們,只是直接指向您的捆綁包創建標籤。

有關如何在ASP.NET Core中進行捆綁和縮小的更多信息,請參見documentation

+0

我很感謝您的詳細解答。我當然希望我至少能看到任何其他優秀的移民文件中包含的任何信息。 – justSteve