Я настраиваю новый проект React с Express & Webpack 4.
Вот моя структура проекта:
|--main/
| |--dist/
| | |--static/
| | | |--bundle.js
| | |--index.html
| |--server/
| | |--index.js (ExpressJS entry point)
| |--src/
| | |--index.js
| | |--index.html
| | |--components
| |--webpack.config.js
exports
в webpack.config.js включает в себя:
entry: './src/index.js',
output: {
path: __dirname + '/dist',
filename: 'static/bundle.js'
},
Настройка static
в JS ExpressJS (server / index.js):
const DIST_DIR = path.join(__dirname, '..', 'dist');
app.use(express.static(path.join(DIST_DIR, 'static')));
При запуске сервера из корневого пути (localhost: 8888 /)файл по пути /static/bundle.js
правильно получен от dist
.Корневая страница прекрасно работает.
Но на некорневой странице (localhost: 8888 / category /: category) он ищет файл по пути /category/static/bundle.js
, который не существует в dist
.
Я попытался изменить статическую настройку в ExpressJS на:
const DIST_DIR = path.join(__dirname, '..', 'dist');
app.use('/static', express.static(path.join(DIST_DIR, 'static')));
, но это не сработало.
Как это исправить для страниц без полномочий root?Как мне сказать, что express ищет абсолютный путь (/static/bundle.js) для статических файлов, а не относительный.Кроме того, правильна ли моя конфигурация webpack?