Итак, я настраивал приложение MERN с основным пакетом, который запускает сервер Express, и клиентской папкой, которая содержит интерфейс React и имеет собственный пакет. Для тестирования клиента я использовал webpack-dev-server для запуска файла HTML в папке client/public
, которая связывает пакет Webpack в папке dist
. HTML-файл:
<!DOCTYPE html>
<html>
<head>
<title>React Config</title>
</head>
<body>
<div id="root"></div>
<script src="../dist/bundle.js"></script>
</body>
</html>
Относительный путь для пакета правильный, и он отлично работает с использованием WDS. Однако, когда я пытаюсь передать этот файл через мой сервер Express, я получаю ошибку 404 для файла пакета. В моем server.js:
app.use(express.static('client'));
const appPage = path.join(__dirname, './client/public/index.html');
app.get('/', function(req, res) {
res.sendFile(appPage);
});
Это правильно показывает файл HTML, но когда я перехожу на локальный сервер, он пытается найти bundle.js
в http://localhost:3000/dist/bundle.js
вместо http://localhost:3000/client/dist/bundle.js
. Более того, даже когда я изменяю путь в HTML, чтобы он указывал на правильное местоположение, он все равно 404.
Итак, 2 вопроса:
1) Как я могу настроить пути для пакета Webpack, чтобы он был доступен как из WDS, запущенного в папке клиента, так и с моего сервера Express в основном пакете?
2) Почему пакет не обнаруживается Express, даже когда я изменяю путь, чтобы он был правильным? Я включил всю папку клиента как статическую для сервера.