Asp.Net Core 2.0 Web应用程序静态文件提供404

时间:2018-02-25 10:36:22

标签: c# asp.net web-services asp.net-core http-status-code-404

我尝试从我的网络服务器(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: my file in folder

当我点击它时:什么也没发生,我得到了404。 enter image description here

针对Evk进行了更新:

我将static_json.json文件添加到src文件夹中的静态文件,并按预期获取: But red one still not available

提前感谢您的帮助!

3 个答案:

答案 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文件为我解决了这种情况。