我尝试从我的网络服务器(asp.net core 2.0)获取自定义扩展静态文件。
我尝试下一步:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddDirectoryBrowser(); // just to see that I have this files
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
app.UseDirectoryBrowser();
}
}
所以,我可以在文件夹中看到我的文件,但我无法得到它 - 它会抛出404:
针对Evk进行了更新:
我将static_json.json文件添加到src文件夹中的静态文件,并按预期获取:
提前感谢您的帮助!
答案 0 :(得分:3)
我不确定,但看起来您的扩展程序被IIS设置拒绝直接作为静态资源访问。请尝试使用web.config:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".appinstaller" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>
同时检查请求过滤。查看更多信息: How to deny access to a specific file name extension
答案 1 :(得分:2)
我在开发过程中遇到了问题。 我使用UseStaticFiles的重载方法将选项ServeUnknownFileTypes设置为true。
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
app.UseDeveloperExceptionPage()
.UseSession()
.UseStaticFiles(new StaticFileOptions
{
ServeUnknownFileTypes = true,
})
.UseDirectoryBrowser()
.UseRequestLocalization()
.UseMvcWithDefaultRoute();
}
答案 2 :(得分:0)
这个答案可能迟到了,但就我而言,解决方案是在我的IIS设置中。 在“请求过滤”的“允许”列中,JavaScript文件扩展名(.js)设置为False。 从“请求过滤”中删除js文件为我解决了这种情况。