pavel
pavel

Reputation: 2186

Asp.Net Core 2.0 Web Application Static Files Gives 404

I try to get custom-extension static files from my web-server (asp.net core 2.0).

I try to run next:

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();
    }
}

So, I can see my files at folders but I can't get it - it throw 404: my file in folder

And when I click on it: nothing happened and I got 404. enter image description here

Updated for Evk:

I added static_json.json file to static files at src folder and it get it as expected: But red one still not available

Thank you for any help in advance!

Upvotes: 11

Views: 10675

Answers (3)

onihime
onihime

Reputation: 129

This answer might come in late, but in my case the solution was in my IIS settings. JavaScript file extension (.js) is set to False in Allowed column of Request Filtering. Removing js file from Request Filtering solved this case for me.

Upvotes: 0

Zu1779
Zu1779

Reputation: 2198

I had the problem during development. I used the overloaded method of UseStaticFiles to set the option ServeUnknownFileTypes to true.

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

Upvotes: 21

Evgeny Gerbut
Evgeny Gerbut

Reputation: 390

I am not sure, but it looks like your extension is denied by IIS settings to access directly as a static resource. Please, try this for the web.config:

<configuration> 
   <system.webServer> 
       <security> 
          <requestFiltering> 
              <fileExtensions> 
                <add fileExtension=".appinstaller" allowed="true" /> 
              </fileExtensions> 
         </requestFiltering> 
       </security> 
    </system.webServer> 
</configuration> 

Also check request filtering. See more information: How to deny access to a specific file name extension

Upvotes: 7

Related Questions