我已经通过NuGet(BundleTransformer.SassAndScss v1.9.96 与 Core 和 LibSassHost 组件)在我的MVC 5项目中设置了BundleTranslator 。接下来,我将捆绑引用添加到我的 View.cshtml
@Styles.Render("~/Content/sass")
并重新定义了BundleConfig.cs:
var nullOrderer = new NullOrderer();
var commonStylesBundle = new CustomStyleBundle("~/Content/sass");
commonStylesBundle.Include("~/Content/Custom/the-style.scss");
commonStylesBundle.Orderer = nullOrderer;
bundles.Add(commonStylesBundle);
构建后,网站有一个 .scss 参考:
<link href="/Content/Custom/the-style.scss" rel="stylesheet">
一切都在本地工作,可能只是因为我已经用 SassyStudio 安装了SassAndCoffee包。当我在外部 IIS 服务器上部署时出现问题。该文件存在于 Content/Custom 目录中,但网站已损坏。HTML 代码也有文件引用(它链接到 .scss 文件,而不是编译的 .css),但如果我尝试导航到它,我会收到错误 500。
我已将 Sass 文件Build Action更改为Content(从None)并将Copy to Output Directory保留为Do not copy。我还在 Web.config 中添加了 httpHandlers(但我实际上不知道该怎么做),但仍然没有任何帮助。
<httpHandlers>
<add path="*.sass" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" />
<add path="*.scss" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" />
</httpHandlers>
我没有检查Web.config中的所有设置,因为 NuGet 安装(如我所见)为 BundleTransformer 提供了这种数据。
如何配置BundleTransformer以在IIS上正常工作?我是否必须像示例代码中那样覆盖BundleResolver?
BundleResolver.Current = new CustomBundleResolver();