create-react-app을 Plesk Onyx에 배포하기

제목: create-react-app을 플레스크 온익스에 배포하기 코딩과 프로그래밍에 특화된 문제 해결 블로거로서, 개발자들이 직면하는 다양한 도전들을 자주 만나게 됩니다. 그 중 하나인 create-react-app을 호스팅 플랫폼인 플레스크 온익스에 배포하는 일반적인 문제에 대해 다루고 이를 원활하게 배포하기 위한 …

title_thumbnail(create-react-app을 Plesk Onyx에 배포하기)

제목: create-react-app을 플레스크 온익스에 배포하기

코딩과 프로그래밍에 특화된 문제 해결 블로거로서, 개발자들이 직면하는 다양한 도전들을 자주 만나게 됩니다. 그 중 하나인 create-react-app을 호스팅 플랫폼인 플레스크 온익스에 배포하는 일반적인 문제에 대해 다루고 이를 원활하게 배포하기 위한 가능한 해결책을 제시하겠습니다.

문제 이해

플레스크 온익스는 create-react-app이 생성하는 기본 설정과 프로젝트 구조와 다른 요구사항을 가지고 있습니다. 플레스크에서 문서 루트는 애플리케이션 루트의 하위 폴더여야 하지만, create-react-app이 강제하는 구조와는 다릅니다.

이 문제는 다른 도메인을 파괴하지 않으면서 create-react-app을 배포하는 방법을 찾는 것에 있습니다. 우리는 프로젝트 구조를 플레스크의 특정 요구사항에 맞추어 수정하면서도 제대로 된 기능이 작동되도록 해야 합니다.

가능한 해결책

1. Express 서버를 사용하기:

하나의 해결책은 Express 서버를 설정하여 create-react-app 빌드를 실행하는 것입니다. 다음 명령어를 실행하여 Express를 설치합니다:

npm install express --save

그런 다음 다음 코드로 server.js 파일을 생성합니다:

const express = require('express');
const bodyParser = require('body-parser')
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));

app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(process.env.PORT || 8080);

create-react-app을 빌드한 후에는 다음 명령어로 Express 서버를 실행할 수 있습니다:

node server.js

이 설정을 사용하면 앱을 localhost의 8080 포트에서 액세스할 수 있습니다.

2. .htaccess 사용하기:

특히 싱글 페이지 애플리케이션 (SPA)의 경우 .htaccess 파일에 다음 코드를 생성하는 것이 더 간단한 대안입니다:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

이 설정은 react-router와 함께 올바른 라우팅을 가능하게 합니다. 또한 다음 명령어를 실행했는지 확인해야 합니다:

npm run build

그런 다음 build 폴더를 플레스크 온익스 서버에 업로드하면 앱에 접근할 수 있습니다.

결론

create-react-app을 플레스크 온익스에 배포하는 것은 프로젝트 구조와 문서 루트 요구사항 사이의 차이로 인해 도전이 있을 수 있습니다. 그러나 Express 서버를 설정하거나 .htaccess를 활용하는 등의 해결책을 사용하여 플레스크의 사양을 준수하면서 앱을 성공적으로 배포할 수 있습니다.

이러한 방법들은 유연성을 제공하고 플레스크 온익스와의 호환성을 보장하여 서버에 호스팅된 다른 도메인을 방해하지 않고 create-react-app을 배포할 수 있습니다. 프로젝트 요구사항에 가장 적합한 접근 방법을 선택하고 자신감 있게 배포를 시작하세요.

참고 자료 : 

reactjs

Leave a Comment