2017-11-03 78 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