2016-06-05 4 views
0

나는 웹을 보았지만 여전히 운이 없으며, 따라서 나는 왜 묻고 있습니다. 나는 또한 angularjs2 응용 프로그램에 집에있을 것입니다 웹 API 4.6 프로젝트를, 가 나는 같은 정적 파일을 사용하도록 설정 한 : index.html을 인출 할 때ASP.NET 4.6 WEB API 정적 파일 (.js, .css)을 제공하지 않습니다. IIS express visual studio

var physicalFileSystem = new PhysicalFileSystem(@".\wwwroot\"); 
     var options = new FileServerOptions 
     { 
      EnableDefaultFiles = true, 
      FileSystem = physicalFileSystem, 
     }; 
     var contentTypes = new FileExtensionContentTypeProvider(); 

     options.StaticFileOptions.FileSystem = physicalFileSystem; 
     options.StaticFileOptions.ServeUnknownFileTypes = true; 
     options.StaticFileOptions.ContentTypeProvider = contentTypes; 
     options.DefaultFilesOptions.DefaultFileNames = new[] { "index.html" }; 
     options.EnableDirectoryBrowsing = true; 
     app.UseFileServer(options); 

index.html을이 제공됩니다 모든 파일 (.css.js) 404 오류가 콘솔에 나타납니다. 디렉토리 브라우징을 사용할 수있게되어 파일이있는 것을 볼 수 있습니다.

+0

그냥 궁금해서! 정적 파일을 처리하기 위해 위의 코드가 필요한 이유는 무엇입니까? MVC 프로젝트에는 MVC 애플리케이션, WebAPI 엔드 포인트 및 Angular JS 정적 파일이 있습니다. 위의 코드 없이는 모든 것이 작동하는 것 같습니다. –

+0

나는 MVC를 사용하지 않고 있는데, angularjs2에 대한 separete 프로젝트가 있는데 wwwroot 밑에 만 빌드하려고합니다. –

답변

1

내 코드가 잘 작동하는 것을 발견했습니다. 다음 코드를 web.config 파일에 추가해야했습니다.

<system.webServer> 
<handlers> 
    <remove name="StaticFile"/> 
    <add name="Owin" verb="" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb"/> 
</handlers> 

대답 here을 발견했다. 나는 이것이 중복 또는 삭제 된 것으로 표시 될 수 있다고 생각합니다.

+0

Asp.Net 5/core에 있습니까? –

+0

아니요, 4.6을 사용하고 있습니다. –

0

대신 OWIN을 사용하면 ~/wwwroot에서 web.config 설정 (URL 재 작성)을 사용하여 정적 파일을 제공하는 목표 인 here을 얻을 수 있습니다.