[angular] index.html, main.ts
출저 및 참고 사이트
index.html 파일
- 웹페이지의 홈 화면, 메인 페이지
- 디렉토리의 대표 문서
- 어떤 디렉토리에 접속 했을때 자동적으로 보여주는 파일
- 만약 디렉토리에 index 파일이 없을 경우 그 디렉토리에 있는 파일들을 리스트 형식으로 보여주거나 또는 forbidden 메세지가 뜨면서 접근이 금지된다.
웹페이지의 메인페이지가 index.html 인 이유
- 웹서버에서 디렉토리 화일 목록을 보여주기 위해 index.html 으로 지음
- 전통적인 웹서버(apache/nginx)에선, index.html 이 없으면 웹서버가 파일목록(index.html) 을 만들어 보여준다.
-
옛날에는 웹서버에 지금 우리가 작성하는 웹페이지가 아니라 파일들만 잔뜩 있었다. 그 파일들을 보여주기 위해 index.html 이 필요했던 것이다.
- 웹서버 목차 역할을 하던 페이지가 메인 페이지로 굳어진 것이다.
- 서버 설정에서 다른 이름으로 쓸 수 있도록 변경할수 있다. (Angular 프로젝트에서 angular.json 파일에 index : 항목에서 값 변경 가능)
index.html 작동 프로세스
- 브라우저에 http://yoursite.com/ 입력 -> public_html/index.html 을 보여줌
- http://yoursite.com/index.html/ 을 입력한 것과 같은 결과가 나옴
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>StudyWeb</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root> Component가 들어가는 부분, Component의 Selector 를 가져와서 보여준다. </app-root>
</body>
</html>
main.ts
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
/*
platformBrowserDynamic() - 브라우저에서 Angular 를 사용하기 위해 Angular 의 이런 기능을 사용할 것이라고 알려주는 것
Angular에는 platformBrowser() 와 platformBrowserDynamic() 두가지가 있다.
매개변수 App.Module.ts 파일 -> Angular의 설정파일
* */
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BoardListComponent } from './page/board-list/board-list.component';
import { BoardDetailComponent } from './page/board-detail/board-detail.component';
import { MainComponent } from './page/main/main.component';
import {TokenInterceptorService} from "./common/token-interceptor.service";
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
// @ts-ignore
//공통적으로 사용할 Component, Module, Service를 등록하는 설정파일
@NgModule({
declarations: [
AppComponent,
BoardListComponent,
BoardDetailComponent,
MainComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [
//공통적으로 사용할 Service를 등록하는곳
{
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true
}
],
bootstrap: [AppComponent]
//bootstrap -> 최상위 컴포넌트, 즉 프로젝트를 실행했을 때 가장먼저 실행되는 컴포넌트를 등록한다. 현재는 AppComponent가 등록되어져 있다.
})
export class AppModule { }
//AppModule 이라는 이름으로 export 시켜서 외부에서 참조할수 있도록 한다.