Не удается отправить статический HTML-файл с помощью Express / Node - PullRequest
0 голосов
/ 19 сентября 2018

Я использую Express с Node, а затем создаю приложение React с этим, которое представляет собой одну страницу, за исключением одного статического HTML-файла.

У меня это работает локально, поэтому, когда я перехожу к localhost:3000/static-file.html, яможно увидеть файл.Но это не работает в производственном процессе.

Я даже не могу нажать ни на один из тестовых операторов console.log, поэтому я знаю, что при запросе static-file.html ничего не происходит.Пожалуйста, смотрите ниже часть моего app.js файла:

if (process.env.NODE_ENV === "production") {
  app.get('/static-file.html', function (req, res) {
    console.log('test1');
  });
  app.get('static-file.html', function (req, res) {
    console.log('test2');
  });
  app.get('static-file', function (req, res) {
    console.log('test3');
  });
  app.get('/static-file', function (req, res) {
    console.log('test4');
  });

  app.use(express.static("client/build"));
}

Когда я захожу на production-site.com/static-file.html - я просто вижу индекс, в отличие от localhost.

Кто-нибудь может мне в этом помочь?Большое спасибо.

1 Ответ

0 голосов
/ 19 сентября 2018
Try something like this:
    const express = require('express');
    const app = express();
    const path = require('path');

    // the __dirname is the current directory from where the script is running
    app.use(express.static(__dirname));
    app.use(express.static(path.join(__dirname, 'build')));
    app.get('*', (req, res) => {
      res.sendFile(path.join(__dirname + '/build/index.html'))
    })

    /* Here build is the production build directory and index.html is the main html page to show */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...