ASP.NET Core empty .scss文件中的浏览器中的文件



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
}

最新更新