Sass BundleTranslator 的 SCSS
Sass SCSS by BundleTranslator
我已经通过 NuGet 在我的 MVC 5 项目中设置了 BundleTranslator(BundleTransformer.SassAndScss v1.9.96 与 Core 和 LibSassHost 组件)。接下来,我将包引用添加到我的 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) 并离开复制到输出目录 为不复制。我还添加了 httpHandlers 到 Web.config(但我实际上不知道为什么)但仍然没有任何帮助。
<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();
有几件事可以尝试诊断问题。首先它在本地工作! :)
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 类型的可能性很小,但我不相信它会。
我已经通过 NuGet 在我的 MVC 5 项目中设置了 BundleTranslator(BundleTransformer.SassAndScss v1.9.96 与 Core 和 LibSassHost 组件)。接下来,我将包引用添加到我的 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) 并离开复制到输出目录 为不复制。我还添加了 httpHandlers 到 Web.config(但我实际上不知道为什么)但仍然没有任何帮助。
<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();
有几件事可以尝试诊断问题。首先它在本地工作! :)
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 类型的可能性很小,但我不相信它会。