[SpringProjectRoot]/src 경로 밑에 vue 프로젝트를 생성한다. (명령어 : vue create <project-name>)
$ ls
main test
$ vue create frontend
vue 프로젝트 생성 명령어를 입력하면 아래와 같이 preset을 선택할 수 있다. default(babel, eslint)를 선택할 경우 추가 설정 없이 자동으로 프로젝트가 생성되며, Manually select features를 선택할 경우 사용자가 직접 프로젝트 설정을 선택할 수 있다.
Vue CLI v3.11.0
? Please pick a preset: (Use arrow keys)
❯ default (babel, eslint)
Manually select features
(공식 Vue Cli Configuration Reference : https://cli.vuejs.org/config/#global-cli-config)
webpack 설정을 위해 Frontend 프로젝트의 루트 경로([Spring Project Root]/src/frontend) 밑에 vue.config.js 파일을 생성하고 다음과 같이 작성한다.
/* 상대 주소는 Frontend 루트 경로를 기준으로 한다. */
module.exports = {
outputDir: '../main/webapp/resources',
assetsDir: '../resources/static'
/* 주의! : assetsDir을 'static'으로 설정하면 index.html에서 정적 파일들에 접근을 못한다. */
}
outputDir : 빌드 결과로 생성되는 파일들의 기본 경로
assetsDir : outputDir 기준의 상대 경로. 정적 파일(js, css, fonts, img) 생성 경로
indexPath : outputDir 기준의 상대 경로. 지정하지 않으면 디폴트 값인 index.html이 설정된다.
Vue CLI 3 Configuration
Installation
Backend(Spring Framework) Configuration
Project structure
Frontend(Vue.js) Configuration in Backend Project
[SpringProjectRoot]/src
경로 밑에 vue 프로젝트를 생성한다. (명령어 :vue create <project-name>
)vue 프로젝트 생성 명령어를 입력하면 아래와 같이 preset을 선택할 수 있다.
default(babel, eslint)
를 선택할 경우 추가 설정 없이 자동으로 프로젝트가 생성되며,Manually select features
를 선택할 경우 사용자가 직접 프로젝트 설정을 선택할 수 있다.Frontend Project Structure
vue.config.js 설정 파일
(공식 Vue Cli Configuration Reference : https://cli.vuejs.org/config/#global-cli-config) webpack 설정을 위해 Frontend 프로젝트의 루트 경로(
[Spring Project Root]/src/frontend
) 밑에vue.config.js
파일을 생성하고 다음과 같이 작성한다.outputDir
: 빌드 결과로 생성되는 파일들의 기본 경로assetsDir
:outputDir
기준의 상대 경로. 정적 파일(js
,css
,fonts
,img
) 생성 경로indexPath
:outputDir
기준의 상대 경로. 지정하지 않으면 디폴트 값인index.html
이 설정된다.위의 설정에 따라 빌드하면 다음과 같은 경로로 파일이 생성된다.
Spring 설정
Spring이
vue.config.js
에서 설정한 경로에서 view 파일을 찾도록servlet-context.xml
파일을 수정한다.HomeController.java
를 수정하여 URL/
을home.jsp
가 아닌index.html
로 매핑시킨다.최종 프로젝트 구조
Tomcat 실행 후 localhost:8080 으로 접속