Express: сервер не может обработать обновление при использовании параметра URL - PullRequest
0 голосов
/ 09 мая 2018

При использовании параметра URL, например, books/1, по какой-то причине экспресс-приложение не может найти и обслуживать Index.js.

Я использую абсолютный путь, но даже мое экспресс-приложение не может найти Index.js при обновлении URL-адреса с использованием параметров.

unable to find Index.js

Как вы можете видеть на скриншоте, вместо показа Index.js он не может найти его и вместо этого служит html-файлом как Index.js.

Я выполняю универсальное решение , которое прекрасно работает, пока не обновится с параметром URL:

app.use(express.static(path.resolve(__dirname,  '..', 'build')));
app.get('/*', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});

Я даже пытался настроить конкретный маршрут для /Index.js, но не повезло.

app.use(express.static(path.resolve(__dirname,  '..', 'build')));
app.get('/Index.js', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'Index.js'))
});
app.get('/*', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});

Я также пытался использовать serve-static вместо express.static, но это не помогло.

Я продублировал эту проблему в этом репо , если кто-то заинтересован взглянуть.

Внешний интерфейс этого проекта находится в причина-реакция .

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Обслуживание Index.js на mountpath "book / Index.js" решило проблему.

Вроде так:

app.use(express.static(path.resolve(__dirname,  '..', 'build')));
app.get('/book/Index.js', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'Index.js'));
});
app.get('/*', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});
0 голосов
/ 09 мая 2018

Это может быть упрощенно, но вы пробовали: res.sendFile('../public/index.js', {root: __dirname});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...