작성
·
533
·
수정됨
0
백엔드에 배포하려고 파일 넘기기 전에,,
빌드가 잘 되었는지 테스트해보려고 (백엔드 먼저 켜두고)
index.html을 그냥 브라우저로 열면 백엔드와 잘 연동될줄 알았는데, 첫 화면부터 보이지가 않아서요. 그 이유가 궁금합니다.
이유가 혹시,,, 웹펙에서
devServer: {
historyApiFallback: true, // react router(원래 SPA에서는 3090/ 주소밖에 모른다. 뒤에 /login같은 경로는 우리가 가짜로 만들어낸건데 History api(History 기본함수)가 가짜주소를 만들어주는 거다.)
port: 3090,
devMiddleware: { publicPath: '/dist/' },
static: { directory: path.resolve(__dirname) },
proxy: {
'/api/': {
//프론트에서 /api/로 보내는 요청은 주소를 3095로 바꿔서 보내겠다
target: 'http://localhost:3095',
changeOrigin: true,
},
},
},
위와 같이 dev모드일때는 3090포트 개발서버를 항상 켜두는데, 이처럼 뭔가 서버가 계속 켜있어야 프론트가 잘 작동 가능한건가요?? (그래서 배포할때 백엔드서버는 항상 켜있으니까 그냥 넘겨주면 된다는게 이해가 되는거 같아서요) 만약 그렇다면 프론트인데 빌드 결과물이 있는데 왜 계속 프론트만을 위한 서버가 켜있어야 하는지 궁금합니다,,
저는 배포파일이 실행파일마냥 그냥 index.html 실행하면 (백엔드 켜져있어서 통신할 수 있다는 가정하에) 알아서 잘 되는줄 알았거든요,,
답변 1
1
네트워크 탭 켜보시면 app.js라든가의 경로가 맞지 않을 겁니다. 그 경로는 백엔드에서 보통 컨트롤해주는 것이고요. 또한 백엔드와의 api 소통이 원활하지 않아서 화면이 표시되지 않을 수도 있습니다.