컴퓨터/웹 : JS

[Node.js] 노드js에서 정적파일 사용/정적파일의 개념

도도새 도 2023. 4. 5. 01:30

Node.js 정적파일

 

 

Node.js로 서버를 구성하다보면 가끔 사진이나 css가 적용이 잘 안 되는 때가 있다. 노드js 사진 오류의 경우를 돌이켜보면 대부분 정적 파일을 등록하지 않아서 생긴 문제였다.

 

정적 파일이 들어있는 폴더를 등록하기 위해서 express에서는 static이라는 메서드를 사용한다. 물론 다른 모듈(fs)으로 파일을 직접 읽어 사용자에게 보여주거나 하는 방식도 있겠지만, static을 사용하는 것이 가장 편리하다.

 

Node.js 정적파일 등록

 

이를 위해 아래의 코드를 삽입한다.

app.use(express.static('public'));

 

이렇게 하면 public이라는 이름으로 된 폴더 내의 파일들을 정적 파일로 사용하겠다는 의미가 된다. 보통은 아래와 같은 형태로 많이 사용한다.

 

app.use(express.static(__dirname + '/public'));

 

여기서 __dirname은 현재 모듈의 절대 경로를 나타내는 전역 변수이다.

 

즉 현재 app.use를 실행한 모듈(app.js라고 가정)의 구조가 c/web/app.js라면, __dirname c/web가 된다. 그러므로 위의 코드는

app.use(express.static(‘c/web/public'));

와 같게 된다.

 

정적 파일이란?

정적 파일이란 웹 어플리케이션에서 동적으로 생성되지 않고, 클라이언트 측에서 렌더링 되는 파일을 말한다. 다른 말로 미리 서버에 저장해 놓은 파일이라고 할 수 있으며 외부 환경에 관계 없이 일정한 결과값을 제공해주는 파일이다. 예를 들어 HTML, CSS, JavaScript, 이미지 파일 등이 있다.