MVC布局中的Sitefinity CSS组合

MVC布局中的Sitefinity CSS组合,sitefinity,Sitefinity,在SiteFinityWebForms中,您有一个ResourceLinks控件,允许您组合多个,但在MVC布局中使用什么 我不确定razor helper@Html.StyleSheet是否能完成这项工作 将所有CSS文件添加到App_Data\Sitefinity\websitemplates[template_folder]\App_Themes[theme]中的全局文件夹将自动将它们添加到站点,但不会合并它们 我们正在与SiteFinity8.x合作,寻找一种压缩和组合JS和CSS的最终

在SiteFinityWebForms中,您有一个ResourceLinks控件,允许您组合多个,但在MVC布局中使用什么

我不确定razor helper@Html.StyleSheet是否能完成这项工作

将所有CSS文件添加到App_Data\Sitefinity\websitemplates[template_folder]\App_Themes[theme]中的全局文件夹将自动将它们添加到站点,但不会合并它们


我们正在与SiteFinity8.x合作,寻找一种压缩和组合JS和CSS的最终方法,但选择似乎不多

随着从webforms到mvc的转变,Sitefinity并没有特别介绍一个新的bundler之类的东西,所以您只剩下2个默认选项,但他们似乎选择了第3种方法

1) 使用.less和.sass作为构建过程的一部分进行预处理

因此,在您的主题文件夹中,您将有一个
global.less
(或scss或sass),它基本上使用
@import
指令将它们组合在一起。 安装VisualStudio扩展,如(以前是WebEssentials的一部分),然后在VS设置中定义它应该编译和缩小的版本。 然后,每次构建或发布时,您的一个绑定和压缩的.min.css将可用于Sitefinity

2) 第二种选择是使用默认的ASP.NET Web优化

在VisualStudio中定义静态捆绑包,然后通过
@style.Render
@Scripts.Render
使用这些捆绑包来输出它们

3) 最后,新的Feather方法增加了一种新方法,它使用当前流行的Grunt方法来捆绑和优化您的样式和脚本

在/ResourcePackages文件夹中,您将看到一个gruntfile.js文件,其中包含一个可以运行的任务,然后可以将.sass编译(并可以扩展为前缀、捆绑、缩小等)为.min.css,然后将其添加到解决方案中

这里可以看到一个样本()

我将使用上述方法的组合来获得Sitefinity的最大结果,您可以使用选项1构建核心/基础CSS和JS,然后使用Web.Optimization将它们包括在内。 任何其他页面或与小部件相关的样式或JS都可以通过css小部件手动包含,css小部件通过选项3编译

一旦您对这种新方法更加熟悉,您就可以根据需要创建和加载优化的.css和.js,甚至使用RequireJS方法来加载它们也取决于页面上拖放的小部件。考虑到最新的小工具和小发明,RequireJS可能显得过时了,但在v9.0中,Sitefinity本身仍在使用它来添加内联编辑功能

如果您需要关于选项3的更多信息,请告诉我,我很乐意用一些代码片段或示例脚本来扩展我的答案,说明我是如何定制它们的