Asp.Net Core 2.0 Web 应用程序静态文件给出 404

Asp.Net Core 2.0 Web Application Static Files Gives 404

我尝试从我的网络服务器(asp.net 核心 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:

当我点击它时:没有任何反应,我得到了 404。

为 Evk 更新:

我将 static_json.json 文件添加到 src 文件夹中的静态文件,它按预期方式获取:

提前感谢您的帮助!

我不确定,但看起来您的扩展被 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

我在开发过程中遇到了问题。 我使用 UseStaticFiles 的重载方法将选项 ServeUnknownFileTypes 设置为 true。

public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
    app.UseDeveloperExceptionPage()
        .UseSession()
        .UseStaticFiles(new StaticFileOptions
        {
            ServeUnknownFileTypes = true,
        })
        .UseDirectoryBrowser()
        .UseRequestLocalization()
        .UseMvcWithDefaultRoute();
}

这个答案可能来晚了,但就我而言,解决方案在我的 IIS 设置中。 JavaScript 在请求过滤的允许列中将文件扩展名 (.js) 设置为 False。 从请求过滤中删除 js 文件为我解决了这个问题。