【问题标题】:Sass SCSS by BundleTranslatorBundleTranslator 的 Sass SCSS
【发布时间】:2016-03-30 14:23:48
【问题描述】:

我已经通过 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">

一切都在本地运行可能只是因为我安装了 SassAndCoffee 包和 SassyStudio。当我在外部 IIS 服务器上部署时出现问题。该文件存在于 Content/Custom 目录中,但网站已损坏。 HTML 代码也有文件引用(它链接到 .scss 文件,而不是编译的 .css),但如果我尝试导航到它,我会收到错误 500。

我已将 Sass 文件 Build Action 更改为 Content(从 None)并离开 复制到输出目录 作为不要复制。我还在 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 覆盖为in example code

BundleResolver.Current = new CustomBundleResolver();

【问题讨论】:

    标签: asp.net iis asp.net-mvc-5 sass bundletransformer


    【解决方案1】:

    有几件事可以尝试诊断问题。首先它在本地工作! :)

    1.
    值得测试您的捆绑是否正常工作。您可以通过临时设置以下内容来做到这一点(完成后将其取出)。

    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles)
        {
            BundleTable.EnableOptimizations = true;
    
            // Bundles and stuff...
        }
    }
    

    运行该站点,然后在您的浏览器开发工具中,您应该会看到如下内容:

    /bundles/commonStyles?v=BzJZwKfP1XV8a6CotGRsHhbxraPDst9zDL2X4r36Y301

    如果这可行,那么我们可以很高兴捆绑将在生产中运行。

    2.
    权限。如果您收到 500 内部服务器错误,请检查包含 scss 文件的文件夹的权限。还要检查它们是否存在:)

    3.
    哑剧类型。 IIS 需要为 .scss 添加 mime 类型的可能性很小,但我不相信它会这样做。

    【讨论】:

    • 这似乎是第 1 步的错误。没有BundleTable.EnableOptimizations = true; 它只是无法正常工作。感谢您的帮助! :) 我还发现了类似Delegate Sass Builder 的东西,它不需要外部依赖项/引用,并且每次构建都将 .sass/.scss 编译为 .css,但是 CSS 文件没有被添加到项目树中,所以它们不存在部署后(如果改进,我更喜欢这个构建器而不是捆绑器)。此外,当 EnableOptimizations 设置为 true 时,每个 CSS 文件都必须包含在包中
    猜你喜欢
    • 2015-01-28
    • 2017-10-02
    • 2018-04-05
    • 2017-04-24
    • 2012-05-04
    • 2015-04-07
    • 2012-07-31
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多