2017. 6. 27. 15:30

ASP닷넷 코어(ASP.NET Core)로 빈 프로젝트를 생성한 다음 프로젝트를 실행하면 다음과 같이 화면이 나옵니다.

 

 

 

이것은 ASP.NET이나 HTML 페이지가 아니고 프로그램에서 생성된 메시지입니다.

 

 

 

하지만 우리가 빈 프로젝트로 생성한 이유는 HTML 파일을 표시하기 위해서죠.

그럼 이제부터 HTML 페이지를 열기 위해서 세팅을 해봅시다.



 

1. 파일 준비

일반적으로 웹서버는 다음 파일들을 첫 페이지로 읽도록 세팅하게 됩니다.

 

index.html
index.htm
default.html
default.htm

 

ASP.NET Core에서 html 파일은 'wwwroot'에 있어야 읽을 수 있습니다.

'wwwroot'에 위 파일들 중 한 개를 생성합니다.

전 'index.html'로 생성하겠습니다.

 

 

 

당연하게도 지금은 실행해도 기본 파일을 읽지 못합니다.

 

 

1. 참조 추가

 

html을 읽으려면 'UseStaticFiles()'라는 확장기능이 필요합니다.

 

이기능은

Microsoft.AspNetCore.StaticFiles

을 참조해야 합니다.

 

누겟을 열고 'StaticFiles'로 검색합니다.

'Microsoft.AspNetCore.StaticFiles'를 찾아 설치해 줍니다.

 

 

 

3. 설정 변경

이제 'Startup.cs'파일을 열고 'Configure'함수를 다음과 같이 수정합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole();
 
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
 
    //웹사이트 기본파일 읽기 설정
    app.UseDefaultFiles();
    //wwwroot 파일읽기
    app.UseStaticFiles();
 
    //app.Run(async (context) =>
    //{
    //    await context.Response.WriteAsync("Hello World!");
    //});
}
cs

 

 

'app.UseStaticFiles();'만 있어도 wwwroot의 파일을 읽을 수 있습니다.

단지 자동으로 기본파일을 찾지 않기 때문에 주소 줄에 파일 이름까지 써줘야 하죠.

 

만약 기본파일외에 다른 파일을 지정하고 싶으면 'DefaultFilesOptions'를 만들어 수정할 수 있습니다.

 

 

1
2
3
4
5
6
7
8
DefaultFilesOptions options = new DefaultFilesOptions();
//기존 디폴트 파일 내역을 지운다.
options.DefaultFileNames.Clear();
//디폴트 파일 을 추가한다.
options.DefaultFileNames.Add("start.html");
 
app.UseDefaultFiles(options);
app.UseStaticFiles();
cs

 

 

 

4. 테스트

이제 실행시켜 봅시다.

 

 

 

기본 파일도 잘 읽어집니다.

 

 

마무리

이렇게 하면 ASP.NET Core를 웹서버로 쓸 수 있습니다.

Core는 단독으로 여러 운영체제에서 동작하는 것이 가능합니다.

그래서 이렇게 설정해서 사용하면 Core만 설치한 후 파일만 복사하면 웹서버가 되어서 돌아가는 겁니다!

 

테스트 프로젝트 : DGUI-JS.zip

 

참고 : TalkingDotnet - Make index.html as startup file in ASP.NET Core