Sea*_*een 5 permissions configuration mime-types asp.net-core
我有一段需要在运行时使用Less.js编译的LESS代码 - 它通过JavaScript计算一些东西 - 所以我不能使用任务运行器等.
在我的index.html中,我有:
<head>
...
<link rel="stylesheet/less" href="assets/less/DynamicHeight.less" />
...
<script type="text/javascript" src="lib/less/less.js"></script>
...
</head>
Run Code Online (Sandbox Code Playgroud)
Less.js似乎无法找到该文件:

当我尝试直接访问该文件时,我看到:

如何添加允许下载较少文件的配置?我仍然可以使用web.configvNext文件,或者我需要做一些事情config.json吗?
认为这可能是正确的道路,但我很陌生.
我看到了很多教程,比如K. Scott Allen的教程,参考代码如下:
public void Configuration(IAppBuilder app)
{
var options = new StaticFileOptions
{
ContentTypeProvider = new FileExtensionContentTypeProvider()
};
((FileExtensionContentTypeProvider)options.ContentTypeProvider).Mappings.Add(
new KeyValuePair<string, string>(".less", "text/css"));
app.UseStaticFiles(options);
}
Run Code Online (Sandbox Code Playgroud)
然而,似乎在其当前版本中,asp.net正在寻找签名Configure(IApplicationBuilder app).
这个IApplicationBuilder类没有一个方法UseStaticFiles- 它只有一个签名IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware).
我有一种感觉,这可能是解决问题的正确途径 - 我只是无法找到如何配置IAppliationBuilder映射MIME扩展.
好的,我相信我明白了.
在ASP.NET vNext中,这是Microsoft.Aspnet.StaticFiles.
在您的project.json文件中,添加以下内容"dependencies":
"Microsoft.AspNet.StaticFiles": "1.0.0-beta2"
Run Code Online (Sandbox Code Playgroud)
这会添加您稍后可以使用的静态中间件方法.
在顶部添加using语句:
using Microsoft.AspNet.StaticFiles;
Run Code Online (Sandbox Code Playgroud)
此时,该app.UseStaticFiles方法将可用,因此您的Configure方法可以如下所示:
public void Configure(IApplicationBuilder app)
{
var options = new StaticFileOptions
{
ContentTypeProvider = new FileExtensionContentTypeProvider()
};
((FileExtensionContentTypeProvider)options.ContentTypeProvider).Mappings.Add(
new KeyValuePair<string, string>(".less", "text/css"));
app.UseStaticFiles(options);
}
Run Code Online (Sandbox Code Playgroud)
瞧!我在浏览.less文件时得到文本,并且LessJS不再出现错误.
在.NET Core 1.0.1中,SeanKileen的回答仍然不错。以下是简单的代码重写:
public void Configure(IApplicationBuilder app, ...)
var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings[".map"] = "application/javascript";
contentTypeProvider.Mappings[".less"] = "text/css";
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = contentTypeProvider
});
Run Code Online (Sandbox Code Playgroud)
上面的代码扩展了默认的映射列表(请参阅源代码),该列表已经具有约370个映射。
FileExtensionContentTypeProvider如果要使用这370个默认映射,请避免使用带有字典的构造函数重载(如JHo所建议)。
| 归档时间: |
|
| 查看次数: |
2887 次 |
| 最近记录: |