是ASP.NET MVC控制器中运行的编译.scss文件的替代方法吗?
我有/ Content文件夹有两个文件:main.scss和external.scss。在我的控制器中,我正在使用NSASS包:
public ActionResult GetCss(string scssPath)
{
string scss = @"@import """ + Server.MapPath(scssPath) + @""";";
var compiler = new SassCompiler();
string compiled = compiler.Compile(source: scss);
return Content(compiled.ToString(), "text/css");
}
我的观点:
<link href="@Url.Action("GetCss", "Theme", new { scssPath="~/Content/sass/main.scss" })" rel="stylesheet" type="text/css" />
main.scss文件:
@import "external";
我有错误
错误:要导入的文件未找到或不可读:外部
我试着编写@import“external.scss”但同样的问题。
答案 0 :(得分:1)
我们有相同(或类似的问题)。我看到的问题是SassCompiler试图找到相对于当前工作目录的@import文件,而不是相对于包含@import的文件。
根据您的尝试,可能会有一些方法。
我的解决方法包括制作目录结构的临时副本,然后更新每个文件中的所有@import语句,使它们在编译之前相对于工作目录。
<强>更新强> 我通过将所有路径传递到&#39; includePaths&#39;参数。我之前尝试过这个没有成功,因为我使用的是相对路径。如果你使用绝对路径,它就可以工作。