i开发 asp.net core MVC WebApplication Visual Studio 2015 。我在我的Web应用程序中使用 SASS文件。为了使我的前端开发人员的生活更轻松,我希望MAP .CSS文件访问我的浏览器(Chrome)中的.scs文件。
我添加了 .css 文件和 .css.map 文件和 .scss sources> sources Files在 wwwroot 下文件夹。(可以肯定的是,它是公共文件夹)。
所以我的结构是
项目名 wwwroot CSS Sass
但是,当我在浏览器中打开文件时,它总是空的。
我在我的startup.cs文件中添加了 app.UseDirectoryBrowser();
和 app.UseStaticFiles();
,以确保它有效。
我可以看到我的文件,但是当我单击它时,...没有任何事情发生(白页)。
我缺少什么?
我找到了解决方案。我需要在startup.cs文件中为.scs文件添加正确的MIME类型。
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDirectoryBrowser();
var provider = new FileExtensionContentTypeProvider();
// Add .scss mapping
provider.Mappings[".scss"] = "text/css";
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider
});
}
else
{
app.UseStaticFiles();
}
}
rdhainaut的答案对我有用,但是如果您将SASS文件存储在WebRoot之外的文件夹中,则必须添加一个文件提供商,以在启动中的应用程序目录中找到它。CS文件。我不确定这是否会被视为最佳实践,但这是一种选择。
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
//do something
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"SassyStyles")),
RequestPath = new PathString("/SassyStyles"),
ContentTypeProvider = provider
});
//do more stuff
}