我正在尝试使用BundleTransformer将 scss 转换为 css 。
一切正常,除了相对 URL 不会被绝对值替换,破坏所有字体和图像。
我举了一个小例子来说明我的问题:
我的 scss 文件:
@import "../../test/test2";
.test {
background-image: linear-gradient(rgba(0, 0, 255, 0.5), rgba(255, 255, 0, 0.5)),
url("./test.png");
background-color: darken(#ffffff, 10%);
}
被翻译成(在浏览器中访问时):
.test2 {
background-image: linear-gradient(rgba(0, 0, 255, 0.5), rgba(255, 255, 0, 0.5)), url("./test2.png");
background-color: #e2e2e2;
}
.test {
background-image: linear-gradient(rgba(0, 0, 255, 0.5), rgba(255, 255, 0, 0.5)), url("./test.png");
background-color: #e6e6e6;
}
background-color 已编译,但我的 URL 都没有被替换,并且 URL ./test2.png 已损坏,因为正确的相对 URL 是 ../../test/test2.png
我的配置:
<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
<core>
<css defaultPostProcessors="UrlRewritingCssPostProcessor" defaultMinifier="NullMinifier" usePreMinifiedFiles="true" combineFilesBeforeMinification="false">
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
<add name="SassAndScssTranslator"
type="BundleTransformer.SassAndScss.Translators.SassAndScssTranslator, BundleTransformer.SassAndScss"
enabled="true" />
</translators>
<postProcessors>
<add name="UrlRewritingCssPostProcessor" type="BundleTransformer.Core.PostProcessors.UrlRewritingCssPostProcessor, BundleTransformer.Core"
useInDebugMode="true" />
</postProcessors>
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
</minifiers>
<fileExtensions>
<add fileExtension=".css" assetTypeCode="Css" />
<add fileExtension=".scss" assetTypeCode="Scss" />
</fileExtensions>
</css>
</core>
<sassAndScss useNativeMinification="false" indentType="Space" indentWidth="2" lineFeedType="CrLf" precision="5" sourceComments="false" />
</bundleTransformer>
我使用这个文档来制作我的配置。
我正在使用带有 BundleTransformer.SassAnsScss 1.12.36 和 LibSassHost.Native.win-x64 v1.3.3 的 donet 框架 4.8
我究竟做错了什么?