ASP닷넷 코어(ASP.NET Core)로 빈 프로젝트를 생성한 다음 프로젝트를 실행하면 다음과 같이 화면이 나옵니다.
이것은 ASP.NET이나 HTML 페이지가 아니고 프로그램에서 생성된 메시지입니다.
하지만 우리가 빈 프로젝트로 생성한 이유는 HTML 파일을 표시하기 위해서죠.
그럼 이제부터 HTML 페이지를 열기 위해서 세팅을 해봅시다.
[ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기
[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정
[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초
[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리
[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(3) - API 결과 공통 처리
[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(4) - 인증 기능 추가
[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(5) - 스웨거(Swagger) 설정
일반적으로 웹서버는 다음 파일들을 첫 페이지로 읽도록 세팅하게 됩니다.
index.html
index.htm
default.html
default.htm
ASP.NET Core에서 html 파일은 'wwwroot'에 있어야 읽을 수 있습니다.
'wwwroot'에 위 파일들 중 한 개를 생성합니다.
전 'index.html'로 생성하겠습니다.
당연하게도 지금은 실행해도 기본 파일을 읽지 못합니다.
html을 읽으려면 'UseStaticFiles()'라는 확장기능이 필요합니다.
이기능은
Microsoft.AspNetCore.StaticFiles
을 참조해야 합니다.
누겟을 열고 'StaticFiles'로 검색합니다.
'Microsoft.AspNetCore.StaticFiles'를 찾아 설치해 줍니다.
이제 '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 |
이제 실행시켜 봅시다.
기본 파일도 잘 읽어집니다.
이렇게 하면 ASP.NET Core를 웹서버로 쓸 수 있습니다.
Core는 단독으로 여러 운영체제에서 동작하는 것이 가능합니다.
그래서 이렇게 설정해서 사용하면 Core만 설치한 후 파일만 복사하면 웹서버가 되어서 돌아가는 겁니다!
테스트 프로젝트 : DGUI-JS.zip
참고 : TalkingDotnet - Make index.html as startup file in ASP.NET Core