Таким образом, я следовал документации из creat-реакции-приложения-документа , и я не могу понять, как обслуживать мой реагирующий интерфейс через экспресс.В документации указано следующее:
const express = require('express');
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(9000);
Но структура моего проекта выглядит следующим образом:
--root
|
backend
|
src
|
index.ts (My express config)
|
web
|
build (Production build of my react app)
Поэтому мне пришлось адаптировать конфигурацию в моем index.ts вот так:
// Present Frontend view
app.use(express.static(path.join(__dirname, '../../web')));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, '../../web/build', 'index.html'));
});
// Start the server
server.listen(3000, () => console.log('BYOD is listening on port 3000!'));
Но ошибка, которую я получаю, заключается в следующем: отказался применять стиль из 'http://192.168.145.135:3000/BYOD/static/css/main.74ea495e.chunk.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
.
Мой вопрос сейчас: я делаю что-то концептуальнонеправильно?Как я могу решить эту проблему?
Обновление
Итак, я выяснил, что URL-адреса в index.html (в папке сборки) имеют некоторые неправильные URL-адреса, например:
<link rel="shortcut icon" href="/BYOD/favicon.ico"/>
вместо просто:
<link rel="shortcut icon" href="/favicon.ico"/>
Эти URL автоматически вставляются CRA .Как я могу предотвратить загрузку ложных публичных URL-адресов в index.html?